2010-06-10 88 views
1

我已經盡力使我的擴展儘可能簡單,它現在不包含任何皮膚/ css,它只有'statusbar'在一個單獨的'覆蓋'。如何阻止干擾其他擴展的我的Firefox擴展?

問題是,安裝時,它隱藏了我的firefox 3.6.3的「一體化工具欄」擴展名的前三個圖標。

在沒有「一體化工具欄」的其他兩臺機器上,它隱藏了網頁開發工具欄的所有圖標!

chrome.manifest用於

content  stackoverflow content/ 
content  stackoverflow content/ contentaccessible=yes 

overlay chrome://browser/content/browser.xul chrome://stackoverflow/content/browser.xul 

locale stackoverflow en-US locale/en-US/ 

browser.xul

<overlay id="dch-browser-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
     <script type="application/x-javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"/> 
     <script src="stackoverflow.js" /> 

     <statusbar id="status-bar"> 
      <statusbarpanel id="stackoverflow-status-bar-icon" class="statusbarpanel-iconic" src="chrome://stackoverflow/content/icon_small.png" tooltiptext="&runstackoverflow;" onclick="stackoverflow.run()" /> 
     </statusbar> 
</overlay> 

我已經很努力簡化擴展上找原因,​​但失敗了,任何建議/想法將受到歡迎。

thx。

+1

很難回答,沒有一些截圖和代碼,我想。 – 2010-06-10 11:04:39

+0

我已經把上面的核心代碼,如果您需要任何其他信息,請讓我知道... – ccppjava 2010-06-10 11:12:38

+0

我會假設「狀態欄」不是唯一的。嘗試將其名稱更改爲「stackoverflow-status-bar」。 – ChrisF 2010-06-10 11:17:02

回答

1

沒有看到web開發者工具欄的代碼,我會說這是你的覆蓋(「dch-browser-overlay」)非唯一的id。

附註:你真的真的不應該在瀏覽器中從web加載jQuery。將它打包到你的擴展中(在你的情況下,如果你是MITMd,它會減慢啓動速度提供一個安全漏洞)。

+3

完全同意!在擴展中從Internet載入JavaScript是非常危險的,您在計算機上給予該JavaScript完整權限(讀取,寫入和執行)!此外,直接在XUL中加載庫(即使來自擴展內部)是一個問題,因爲它污染了全局名稱空間,並可能與其他擴展名甚至是Firefox代碼發生衝突。 – flpmor 2010-06-10 18:31:52

+0

我同意jQuery評論,我只是想知道如果已經由前端加載,瀏覽器是否會緩存擴展腳本? 將根據建議改變。 關於衝突,因爲我的Web開發人員工具欄仍在工作(我的'一體式工具欄'發生衝突),我的朋友的Web開發人員工具欄被隱藏(所有圖標不顯示),他沒有「 in-one'工具欄... – ccppjava 2010-06-11 09:26:12

+0

如果有空間(磁盤緩存很小),它可能會緩存它。本地文件訪問仍然會更快。 IDS衝突會導致奇怪的問題,其中一個會「贏」,另一個奇怪的事情發生。這可能是你的問題(即使它不是我引用的特定ID)。 – sdwilsh 2010-06-11 17:54:37