我正在使用FF 31上的最新SDK开发Firefox扩展程序。
过去(在多年前SDK出现之前),扩展程序可以完全操作用户所在页面的所有部分,例如,更改dom元素等。
似乎仍然支持修改dom元素,但我似乎无法点击"点击"甚至在页面创建的DOM元素上(而不是扩展名)。
// main.js
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*",
contentScriptFile: [data.url("jquery.js"), data.url("my-addon.js")]
});
//my-addon.js
var z = $('a').filter(function(index) { return $(this).text() === "here"; });
if(z != null && z.length > 0){
alert("FOUND IT");
$(z).click();
}
上面的代码只是查找一个包含" here"作为确切的文本,并尝试单击它。它发现它很好,但点击动作没有做任何事情。
答案 0 :(得分:0)
想出来......
对于遇到同样问题的人,请将其添加到" my-addon.js"的顶部。脚本
unsafeWindow.click_object = function(_item) {
_item.click();
}
然后你可以这样调用它(来自相同的my-addon.js脚本):
unsafeWindow.click_object($(z).get(0));