2014-10-17 48 views
0

我是Firefox插件開發的新手,並且在MDN文檔中找到解決我的問題的方法時遇到了一些問題。我的插件是非常簡單的,現在,我已經打開新的Chrome瀏覽器網頁 Firefox插件中的Chrome頁面無法訪問標籤

var buttons = require('sdk/ui/button/action'); 
var tabs = require("sdk/tabs"); 

var button = buttons.ActionButton({ 
    id: "mozilla-link", 
    label: "Visit Mozilla", 
    icon: { 
    "16": "./icon-16.png", 
    "32": "./icon-32.png", 
    "64": "./icon-64.png" 
    }, 
    onClick: handleClick 
}); 
var addontab = require("sdk/addon-page"); 
var data = require("sdk/self").data; 

function handleClick(state) { 
require("sdk/tabs").open(data.url("chrome://test_addon/content/data/index.html")); 
} 

裏面那個丁目頁我要訪問打開的標籤頁列表的main.js文件;然而,這是我遇到問題的地方。添加必要的JS,如在下面的錯誤代碼將導致:

var tabs = require('sdk/tabs'); 
for (let tab of tabs) 
console.log(tab.title); 

以下是錯誤的,我明明調用腳本不正確,但我不知道我應該如何來實現這一點。

JavaScript error: chrome://test_addon/content/data/index.html, line 12: require is not defined 

回答

0

在的chrome://test_addon/content/data/index.html上下文中運行的代碼是不是沙箱,因此它不能訪問SDK的API。

+0

這很有道理;但是,我很難找到如何對沙盒進行編碼。我是否應該使用此功能來對我的腳本進行沙箱https://developer.mozilla.org/en-US/docs/Components.utils.Sandbox?謝謝! – 2014-10-18 19:59:29

+0

這並不是那麼簡單,實際上我不知道Addon SDK可以對沙盒頁面進行沙盒操作。你真的需要使用chrome註冊這個頁面嗎? – paa 2014-10-20 12:00:11

+0

這個頁面是用chrome註冊的,因爲我正在試圖製作一個非常大且涉及到需要專用頁面的界面。如果我在SDK沙盒中設置JS(例如在工具欄面板中)將必要的數據傳遞到我的修飾頁面然後再返回,會怎麼樣?這甚至有可能嗎?謝謝! – 2014-10-21 23:23:04

相關問題