2013-05-10 41 views
1

我完全不熟悉FF擴展的創建,而且我會更具體。從Firefox插件注入一行JavaScript

當我在例如Firefox的內置沙箱中運行一個JS命令時,它工作得很好,所以我想要創建一個FF插件,點擊相同的JS命令執行。該命令主要工作在一個網頁:

的javascript:$('.plus').click();

我想這不會有這樣的工作:

var Widget = require("widget").Widget; 
var tabs = require('tabs'); 

exports.main = function() { 

new Widget({ 
    id: "user-widget-1", 
    label: "My Mozilla Widget", 
    contentURL: "http://www.mozilla.org/favicon.ico", 
    onClick: function(event) {   
     javascript:$('.plus').click(); 
    } 
}); 

};

謝謝。

回答

0

$(.plus)是jQuery語法,因此您可能想要將jQuery作爲內容腳本加載到您的小部件中。而你要運行代碼爲內容腳本爲好,如:

var data = require("sdk/self").data; 

new Widget({ 
    id: "user-widget-1", 
    label: "My Mozilla Widget", 
    contentURL: "http://example.com/foo.html", 
    contentScriptFile: [data.url("jquery.js"), data.url("myScript.js")] 
}); 

data/myScript.js會是這樣的:

$(document).ready(function() { 
    $('.plus').click() 
}); 

如果您不想點擊文檔時發生加載而不是擴展中發生的特定事件,您可能需要查看communicating with content scripts。我也推薦閱讀general overview of content scripts

+0

你好,謝謝你試圖幫助我!但是即使在文檔加載時擴展也不起作用。我的代碼如下所示:http://pastebin.com/raw.php?i=2HzApdti我有jquery.min.js和myScript.js當然。 – user2367219 2013-05-10 13:04:29

0

使用Page-Mod將內容腳本插入到網頁中,鏈接到小部件中的內容腳本僅在小部件內容中起作用。此外,小部件API已從FF 29棄用,我建議您改用Action button