Firefox扩展构建/ SDK,单击扩展内的页面dom元素

时间:2014-08-23 20:42:40

标签: firefox sdk

我正在使用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"作为确切的文本,并尝试单击它。它发现它很好,但点击动作没有做任何事情。

1 个答案:

答案 0 :(得分:0)

想出来......

对于遇到同样问题的人,请将其添加到" my-addon.js"的顶部。脚本

unsafeWindow.click_object = function(_item) {
    _item.click();
}

然后你可以这样调用它(来自相同的my-addon.js脚本):

unsafeWindow.click_object($(z).get(0));