2012-11-05 70 views
4

我正在使用Firefox的Addon SDK(v。1.11)開發插件。我的擴展程序在每個網站上動態創建一個iframe,然後加載一個包含其他資源(如圖像,字體文件等)的html文件。使用Addon SDK訪問內容

問題

當加載任何這樣的本地資源(即: 「資源://」 模式)時,iframe未能顯示它們和消息被拋出:

Security Error: Content at http: //www.XXX may not load or link to resource://XXX

這是一項安全措施introduced on Firefox 3。在沒有使用Addon SDK的情況下進行開發時,解決方法是聲明一個包含「contentaccessible = yes」的目錄,使任何人都可以訪問該目錄的內容,包括我的附加內容。但是,我無法使用Addon SDK找到類似的功能。有沒有更好的方式使用我的插件創建並插入頁面的iframe上的本地數據?

+0

您是否找到解決方案?我被困在一樣.. – siboney

+0

我也是。 webfonts不起作用... –

+0

@josesigna可能的解決方案:http://stackoverflow.com/a/30051158/669721 – Miroshko

回答

-1

不確定在發佈問題時是否出現這種情況,但看起來應該不再使用Addon SDK使用「resource://」。

如果您在擴展中的HTML文件中使用資源,您可以在本地引用它,否則應該使用data.url('whatever.jpg')並根據需要傳遞該值。

全部信息是在這裏:http://blog.mozilla.org/addons/2012/01/11/sdk-1-4-known-issue-with-hard-coding-resource-uris/

+0

該信息似乎已過時,並在結束,這將有助於死的鏈接 – rubo77

+0

@ rubo77鏈接在現在評論已經死了,因爲Builder已經不存在了: -/hmm。哪些信息似乎過時了? –

+0

您的鏈接仍然有效,但在該鏈接已結束的頁面上:「Jeff Griffiths作者 嗨,John! 對不起 - 建設者在某些時候改變了所有的網址,未能正確轉發。 這個例子現在在這裏: ' https://builder.addons.mozilla.org/package/40222/latest/ - 但那個鏈接也死了 – rubo77

0

我不認爲你可以直接加載指向您的網址內資源的iFrame。瀏覽器抱怨,因爲它要麼違反相同的原產地策略,要麼跨站腳本。我現在不記得哪一個。

如果是要加載的html內容,您可以隨時將其注入到DOM中,然後使用事件API將消息發送到文檔對象以顯示您的自定義html。我已經在過去做過,並且很有效。

所以從main.js發送消息到內容腳本,然後將您的iframe html注入到DOM中,然後您可以發送文檔對象的消息來顯示它。

我希望這會有所幫助。