2011-11-21 52 views
1

我有一個javascript文件連接到我的XUL文件,如下所示:連接的JavaScript功能XUL文件

<script type="application/javascript" 
    src="chrome://myexample/content/myexample.js"/> 

XUL文件疊加顯示在Firefox,但我的功能不工作。

例如

<statusbar id="status-bar"> 
<statusbarpanel id="f1" 
    label="f1" 
    onclick = "MyExample.f1()" 
    /> 
</statusbar> 

myexample.js文件看起來像:

var MyExample = { 
    f1: function() { 
    }, 
    f2: function() { 
    } 
} 

這是我chrome.manifest

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

哪裏可能是錯嗎?

回答

1

似乎沒有要什麼毛病從丟失=您發佈的代碼,除了在

var MyExample = { 

...不知道如果這是在原來的代碼或只是在片段錯字這裏。

您是否設置了javascript.options.showInConsole並檢查錯誤控制檯?當你打開你嘗試修改的窗口時是否有消息?

您也可能觸及chrome代碼被緩存的事實。其效果是您文件中的代碼與Firefox中運行的代碼不同。解決這個問題的方法是在與上面鏈接的showInConsole前綴相同的頁面上設置disable_xul_cache前綴(和/或使用-purgecaches param運行)。如果您有任何疑問,請進行可觀察的更改(即已將更改觀察到的行爲,例如彈出警告)更改爲您認爲緩存的文件。

[編輯]你也可以嘗試在標籤中打開chrome://myexample/content/myexample.js,看看chrome.manifest魔術是否正常工作,並且你的URL是正確的,但我想你的情況沒關係。

+0

這是一個只在片段中的問題類型:-( – xralf

+0

是否有可能'firefox 8.0'不允許解包擴展?當我嘗試打開'chrome:// myexample/content/myexample.js'時,它顯示消息: Firefox無法在jar文件中找到該文件:file:///home/xralf/.mozilla/firefox/pkebutrj.dev/extensions/[email protected]!/content/myexample.js。 ''我將追加chrome.manifest到這個問題 – xralf

+0

小調:'disable_xul_cache'不在about:config – xralf

0

你不需要MyExample.部分。

+0

'MyExample'是命名空間。 – xralf