我为特定网站编写了一个javascript扩展程序,用于跟踪用户的点击次数并记录文本内容。
当我将脚本粘贴到控制台时,脚本运行得很好,但是当我将它加载到扩展中时,它似乎根本不会执行。
我知道内容脚本是在孤立的世界中运行的,但我的脚本不依赖于网页中的任何变量或功能。
也许我需要在我的清单中获得许可?
这是清单
{
"manifest_version": 2,
"name": "Vortojo",
"version": "0.1",
"content_security_policy": "script-src 'self' https://cdn.firebase.com https://*.firebaseio.com; object-src 'self'",
"default_locale": "en",
"description": "Saved words",
"icons":{
"16": "img/icon16.png",
"48": "img/icon48.png"
},
"browser_action": {
"default_icon": {
"16": "img/icon16"
},
"default_title": "browser action",
"default_popup": "browser_action/browser_action.html"
}
}
这里是javascript browser_action.js
var wordsWritten = document.getElementsByTagName("var");
var wordBank ={};
for (var i = 0; i < wordsWritten.length; i++){
wordsWritten[i].addEventListener("click", function(){
if (document.getElementsByClassName("vortarobobelo").length != 0){
var wordbubble = document.getElementsByClassName("vortarobobelo")[0].children[0]
var words = wordbubble.children
for (var i = 0; i < words.length; i++ ){
var word = words[i].children[0].innerText; // the word
var translation = words[i].children[1].innerText; // the translation
wordBank[word] = translation;
console.log(word,translation);
}
}
})
};
答案 0 :(得分:0)
您没有发布browser_action.html
的代码,但可能是加载browser_action.js
的文件。这意味着您的所有getElementsBy
命令都指的是弹出页面的DOM,而不是特定网站的DOM。区分弹出窗口,背景和内容脚本的一个很好的参考是Overview。
您需要使用内容脚本来访问特定网站的DOM。目前,您根本不需要后台脚本。您最终是否取决于您对wordBank
的要求。