使用firefox插件更新选项卡内容

时间:2014-02-26 23:15:33

标签: javascript firefox firefox-addon firefox-addon-sdk

我正在尝试创建一个Firefox插件,它为页面上的电话号码提供超链接。 代码:

  tabs.on('ready', function(tab) {
  tab.attach({
  contentScript: 'self.postMessage(document.body.innerHTML);',
  onMessage: function (message) {
  html = updatePhonenumber(message);      
  }
 });
});

如何使用已修改内容更新标签的内容

2 个答案:

答案 0 :(得分:2)

实现这一目标的最佳方法是使用PageMod MDN docs根据{{3}}“在URL匹配给定模式的网页上下文中运行脚本”。

所以,你将有两个文件:

<强> LIB / main.js

var pageMod = require("sdk/page-mod");
var self = require("sdk/self");

pageMod.PageMod({
  include: "*", // <- this tell firefox to attach the following
                //    content script to all web pages
  contentScriptFile: self.data.url("phone-detector.js")
});

数据/电话detector.js

/* This is a normal js file that gets attached to the current web page
and has access to the DOM*/
var updatePhonenumber = function(dom) {
   // do whatever you should do
}:

updatePhonenumber(document.body.innerHTML); 

答案 1 :(得分:1)

看起来function(tab)正在返回一个标签元素。如果您在浏览器控制台中看到非console.log(tab.linkedBrowser)消息,请转到null然后转到tab.linkedBrowser.contentDocument.documentElement.innerHTML = 'rawr'这只是一个如何更改文档的示例,您不应该使用innerHTML,应该创建元素并附加它或删除元素。