chrome扩展中的Javascript赢得了';t荷载,与孤立世界无关
我为一个特定的网站编写了一个javascript扩展来跟踪用户的点击并记录文本内容 当我将脚本粘贴到控制台中时,它运行得很好,但是当我将它加载到扩展中时,它似乎根本没有执行 我知道内容脚本是在孤立的世界中运行的,但我的脚本并不依赖于网页中的任何变量或函数 也许我的舱单需要许可 这是舱单chrome扩展中的Javascript赢得了';t荷载,与孤立世界无关,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我为一个特定的网站编写了一个javascript扩展来跟踪用户的点击并记录文本内容 当我将脚本粘贴到控制台中时,它运行得很好,但是当我将它加载到扩展中时,它似乎根本没有执行 我知道内容脚本是在孤立的世界中运行的,但我的脚本并不依赖于网页中的任何变量或函数 也许我的舱单需要许可 这是舱单 { "manifest_version": 2, "name": "Vortojo", "version": "0.1", "content_security_policy": "script-s
{
"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浏览器_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);
}
}
})
};
var wordswrited=document.getElementsByTagName(“var”);
var wordBank={};
对于(变量i=0;i
您没有发布browser\u action.html
的代码,但可能是加载browser\u action.js
的文件。这意味着所有的getElementsBy
命令都指向弹出页面的DOM,而不是特定网站的DOM。区分弹出窗口、背景和内容脚本的一个很好的参考是
您需要使用内容脚本来访问特定网站的DOM。目前,您根本不需要背景脚本。你最终是否会这样做取决于你想用
wordBank
做什么是的,在我发布这个问题后不久,我意识到这就是问题所在。谢谢你!