我正在開發一個firefox擴展,我想模擬像螢火蟲這樣的元素的狀態:hover
。如何設置:懸停狀態的DOM元素使用inIDOMUtils :: setContentState?
在my-script-file.js
我將使用self.port
與元素對象例如$('#myDiv')[0]
注意,[0]是獲得DOM元素不是一個jquery對象發射mousehover
。
我的問題是這個代碼不會工作,並會在domUtil.setContentState(step.element, 0x04);
行提出一個錯誤。 錯誤是:
我在Firefox文檔站點去了setContentState()定義和我notited我的元素必須是nsIDOMElement
我的問題實例這裏是如何的我所選擇element
到nsIDOMElement
對象轉換。
其實我這裏的問題是如何在document.getElementById
或jquery $()
函數中選擇的元素上強制:hover
函數?
我看螢火蟲的源代碼,並想出這個片斷:
var {Cc, Ci, Cr} = require("chrome");
var domUtil = Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils);
exports.main = function() {
var attachToTab = function(tab)
{
if(currentWorker)
currentWorker.destroy();
currentWorker = tab.attach({
contentScriptFile: [data.url("jquery.js"), data.url("my-script-file.js")]
});
currentWorker.port.on('mousehover', function(element){
console.log('doing setContentState :hover');
domUtil.setContentState(element, 0x04);
});
}
require("widget").Widget({
id: "MyAddonBtn",
label: "Sample",
contentURL: data.url("images/addon.ico"),
onClick: function(){
attachToTab(tabs.activeTab);
}
});
}
哇哇,真的非常感謝你的信息和片段。 – 2012-04-04 13:18:45