2016-11-21 128 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

我建議你閱讀:

相關問題