retweet

firefox extension的javascript运行环境和调试

继续抓瞎似的摸索。。。 ** 执行环境* 1. 在overlay.js中的全局位置输出alert(this),结果输出:[object ChromeWindow] , 说明ChromeWindow类型的this对象是firefox扩展javascript的全局环境。(如同html中window对象的是普通script脚本的全局环境。) 2. 另外,全局环境对象的名字也叫window, (如同html中的javascript),在全局访问this和访问window效果是一样的。 3. 从 http://www.xulplanet.com/references/objref/ChromeWindow.html 查ChromeWindow和window的区别,发现类ChromeWindow仅仅比window多实现一个接口----nsIDOMChromeWindow <http://www.xulplanet.com/references/xpcomref/ifaces/nsIDOMChromeWindow.html> 4. 从ChromeWindow文档来看,在扩展中的javascript中访问浏览器当前网页的window对象,需要访问window.content, 访问当前网页中的document需要写成window.content.document. ** extension中的出错处理*: 1. firefox默认的“java console”不能输出extension中的javascript错误。新版本的“Console”插件( https://addons.mozilla.org/en-US/firefox/addon/1815)弥补了这个缺陷,可以用来检查Chrome错误。 2. window.onerror还是可以工作。这个技巧还可以使用:
window.onerror = function(msg,url,line){ ACPdebug.onWindowError(msg,url,line); } 3. 我在《从javascript语言本身谈项目实战》这篇文章中提到的assert和输出stack tree的调试技巧还可以使用。
非常感谢galaxysong对我的耐心指导o(∩_∩)o...哈哈。
--EOF--

若无特别说明,本站文章均为原创,转载请保留链接,谢谢

本文地址: http://www.dulao5.com/front-end/2007/05/24/debug-in-firefox-extension.textile