阅读:3074回复:10
关于FireFox扩展开发与扩展脚本的问题,求帮忙!感谢!
在原有老版本插件的基础上基于最新GeckoSDK作出修改并重新打包扩展包。
问题是,chrome/content目录下的js文件,在FireFox24.0 FireFox25.0浏览器里不能被自动调用。导致扩展里的dll接口不能被js调用。在FireFox23.0以及之前的版本,该js文件都可以被自动调用。 希望大牛大神们能给予帮助,分析一下,感谢。 另,js文件语法是没有问题的,用只有一句alert的js文件亦是如此。 |
|
1楼#
发布于:2013-12-06 17:37
FireFox24、25版本下,无法确定扩展中的overlay.xul、js文件是否分别被调用,在xul中添加<script>alert,无法弹框,在js中也是无法弹框。怎么样确定是否文件被调用了?
|
|
2楼#
发布于:2013-12-08 14:37
|
|
3楼#
发布于:2013-12-09 15:11
|
|
4楼#
发布于:2013-12-09 15:13
|
|
5楼#
发布于:2013-12-09 15:20
原来的扩展是注册安装后需要重启的XUL扩展。所以应该先调用chrome.manifest,获得overlay.xul 和XPCOM.dll的路径,然后通过打开chrome/content/overlay.xul文件获得script src 文件的路径。现在的情况是,chrome.manifest文件中xul文件的路径,“ chrome:Helper/content/overlay.xul ”是可以在浏览器中找到这个Helper这个包,并且能找到里面的overlay.xul,但是通过在overlay.xul中添加 js 输出测试,发现在网页打开过程中并没有调用到xul文件。求指导,如果有没理解问题的,希望能留言告知,渴望您的帮助!!
|
|
6楼#
发布于:2013-12-10 13:55
|
|
7楼#
发布于:2013-12-10 16:53
hzzhaiqi:没理解 "在网页打开过程中并没有调用到xul文件",调用哪个xul?。最好传上简化版的扩展。回到原帖FFHelper.xpi 谢谢你的关注,附件是我修改的扩展包。里面的dll文件是基于GeckoSDK25编译的XPCOM组件,需要通过 js 文件调用里面的接口。 现在的问题是,js文件不能对浏览器的动作进行正常的捕获监听并执行相应操作 ,希望您能帮忙看一下这个扩展,有任何问题希望能及时联系我,万分感谢~ |
|
8楼#
发布于:2013-12-11 13:21
CorkiShen:谢谢你的关注,附件是我修改的扩展包。里面的dll文件是基于GeckoSDK25编译的XPCOM组件,需要通过 js 文件调用里面的接口。 现在的问题是,js文件不能对浏览器的动作进行正常的捕获监听并执行相应操作 ,希望您能帮忙看一下这个扩展...回到原帖我没接触过这方面,不太懂。 ff 25 多了个提示 Cannot load binary components from a jar. @ jar:file:///D:/Documents/AutoHotkey/test90/extensions/%7B4d5556bb-fa01-46fd-a1b3-680bac60f22a%7D.xpi!/chrome.manifest:15没注册 Could not map contract ID '@mozilla.org/FFHelper;1' to CID {7CB5B7A0-07D7-11d3-BDE2-000064657374} because no implementation of the CID is registered.不能调用 Components.classes["@mozilla.org/FFHelper;1"].createInstance()找到几个链接 XPCOM changes in Gecko 2.0 - Mozilla | MDN How to build an XPCOM component in Javascript | MDN 查看 stylish 扩展的 chrome.manifest interfaces components/stylishStyle.xpt component {ea17a766-cdd4-444b-8d8d-b5bb935a2a22} components/stylishStyle.js contract @userstyles.org/style;1 {ea17a766-cdd4-444b-8d8d-b5bb935a2a22} |
|
9楼#
发布于:2013-12-11 13:58
hzzhaiqi:我没接触过这方面,不太懂。Re: Cannot load binary components from a jar. @ jar:file:///D:/Documents/AutoHotkey/test90/extensions/%7B4d5556bb-fa01-46fd-a1b3-680bac60f22a%7D.xpi!/chrome.manifest:15这个问题应该是扩展下面chrome文件夹里面结构的问题了,我等会去修改看看 Re: Could not map contract ID '@mozilla.org/FFHelper;1' to CID {7CB5B7A0-07D7-11d3-BDE2-000064657374} because no implementation of the CID is registered.没注册?约定的注册不是在chrome.manifest里面进行的吗? Re: Components.classes["@mozilla.org/FFHelper;1"].createInstance()是要先对扩展实例化?这里不懂,我马上去看看stylish 扩展 Re:Express How to build an XPCOM component in Javascript | MDN 这个介绍实在是太贴切了,之前也没仔细查找,很有帮助! 太感谢你了,能针对问题十分详细的给予回复、解释,感谢!FireFox这样开源平台正是因为有像你这样乐于探索、分享与帮助的人才显示更加有生机与活力! 已关注你,还会有问题请教,万望指导。 另,针对扩展的学习与制作,有什么好的测试工具吗?如上述你测试的错误是用什么工具发现的? |
|
10楼#
发布于:2013-12-11 16:21
CorkiShen:Re:我用的不多,这里有一篇专门讲 debug 的 Debugging - Mozilla | MDN 错误在浏览器控制台(Ctrl + Shift + J)看到 ,我一般用新的配置,安装后重启就能看到。你还可以使用搜索
|
|