我正在尝试创建一个Firefox插件,它为页面上的电话号码提供超链接。 代码:
tabs.on('ready', function(tab) {
tab.attach({
contentScript: 'self.postMessage(document.body.innerHTML);',
onMessage: function (message) {
html = updatePhonenumber(message);
}
});
});
如何使用已修改内容更新标签的内容
答案 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,应该创建元素并附加它或删除元素。