2016-11-21 129 views
0

我开发了一个插件,daneshLink,它已通过Firefox验证。用户安装了这个附加组件并使用它。 这个附加组件工作正常,但是当Firefox更新到版本50.0时,这个附加组件不起作用。为什么我的Firefox附加组件在将Firefox更新到版本50后无法正常工作

(注意:更新Firefox后,附件没有被删除或禁用,它根本不起作用)。

var x = content.document.getElementsByTagName('html')[0].innerHTML; 
var test = x.match(/>article Id:[0-9a-zA-z]/img); 
var url = "> <a href=\"http://mysite.ir/index.jsp?articleID="; 
for (var i = 0; i < test.length; i++) { 
    x = x.replace(test[i], url +">Download :" + test[i] + "</a>"); 
} 
content.document.getElementsByTagName('html')[0].innerHTML = x; 
+0

请[编辑]你的问题是关于话题:问题寻求帮助调试(“**为什么这个代码不工作?“)必须包括:►期望的行为,►一个特定的问题或错误*和*►在问题本身中重现**的最短代码**。没有明确问题陈述的问题对其他读者无益。请参阅:[**如何创建一个最小,完整和可验证的示例**](http://stackoverflow.com/help/mcve),[我可以在这里询问什么主题?](http:// stackoverflow。 com/help/on-topic)和[我如何提出一个好问题?](http://stackoverflow.com/help/how-to-ask)。 – Makyen

+0

没有代码,我们不可能猜测为什么这个附加功能不起作用。只是提供一个指向你的插件是不够的。提供代码。它必须是*在问题本身*中。 – Makyen

+0

另一次,在编写附加组件时,最好使用正在发布的Firefox版本进行测试。这包括[Firefox Beta](https://www.mozilla.org/en-US/firefox/channel/desktop/),[Firefox开发人员版](https://www.mozilla.org/en-US/firefox/developer /)和[Firefox Nightly](https://nightly.mozilla.org/)。您的加载项于2016-10-23发布。每晚都是ver。 51或52。做这样的测试会减少你的插件需要更新的次数,和/或你的插件停止为你的用户工作的时间。 – Makyen

回答

1

您提供的代码不足以知道的问题是什么,但我能猜到。您很可能会遇到转移到多进程Firefox的问题。事实上,这是一个Overlay附加组件,并且您使用content.document可能会导致您无法从主脚本中分离访问网页DOM(使用工作人员)。

如果可能的话,您可能最好将其重写为WebExtension。或者,您可以将其编写为基于Add-on SDK的扩展。如果您确实需要将它作为Overlay附加组件,则可以在主要脚本功能和访问DOM之间提供分隔。但是,这样做并不像其他类型的附加组件那样方便。

可能能有目前的代码稍长兼容通过指定:

<em:multiprocessCompatible>false/em:multiprocessCompatible> 

install.rdf。这样做应该防止Firefox在安装扩展程序时启用多进程模式,或者至少使用可能足以使附加功能运行的compatibility shims

我建议你阅读:

相关问题