私は firefox 拡張機能を開発しており、firebug:hover
のような要素の状態をシミュレートしたいと考えています。
in my-script-file.js
i は要素オブジェクトをmousehover
使用して出力します。たとえば、[0] は jquery オブジェクトではなく DOM 要素を取得することに注意してください。self.port
$('#myDiv')[0]
私の問題は、このコードが機能せず、domUtil.setContentState(step.element, 0x04);
オンラインでエラーが発生することです。エラーは次のとおりです。
setContentState()の定義については、Firefox のドキュメント サイトにアクセスしましたが、要素は私の質問のインスタンスである必要があることに気付きました。選択したオブジェクトをオブジェクトnsIDOMElement
に変換する方法です。element
nsIDOMElement
または、実際に私の質問は、またはjquery関数:hover
によって選択された要素を強制する方法ですか?document.getElementById
$()
firebug のソース コードを読んで、次のスニペットを思いつきました。
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);
}
});
}