2015-10-20 20 views
0

我爲特定網站編寫了一個javascript擴展,以跟蹤用戶的點擊並記錄文本內容。Chrome擴展中的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來做什麼。