2011-01-11 59 views
2

我是新來這個Chrome擴展插件的開發。我正在開發一個使用這個擴展名的新插件。不工作在content_script加載jQuery的文件瀏覽器擴展程序

我的要求是將jquery.js文件加載到內容腳本中,當它沒有該js文件時(例如:我正在檢查jquery.js文件,fancybox.js文件,如果它沒有加載這些文件。)

當我實現內容腳本這個邏輯是加載的jquery.js文件。之後,它不在內容腳本中工作。它顯示$(或)jQuery是未定義的。每次加載時,都不會在內容腳本中執行。

下面是我實現的代碼。

document.getElementById('someid').onclick = loadJs(); 

function loadJS() { 
if(tyof jQuery == undefined || tyof jQuery != 'function') 
    { 
var jqscript = document.createElement('script'); 
jqscript.type = 'text/javascript'; 
jqscript.async = true; 
// Src of the script 
jqscript.src = "......url to jquery.js file.............."; 

// Check whether script is loaded or not 
     jqscript.onload=function(){ 
      if ((!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) { 
        console.log("Script loaded - "); 
            // It is showing error here 
             alert(typeof jQuery); 

      } 
     }; 

// Get the document header 
var head = document.getElementsByTagName('head')[0]; 
// Add script to header - otherwise IE complains 
head.appendChild(jqscript); 

} 
} 

這個請建議。

謝謝。

+0

如果你希望人們在回答你的問題,你應該投入一些精力在格式正確你的問題和代碼。 – 2011-01-11 13:42:32

+0

你正在調用「內容腳本」,有很多不同的東西。從你的代碼看起來你試圖從內容腳本注入jquery到父文檔。如果你希望它在內容腳本中工作,那麼它不會,因爲內容腳本不能訪問父文檔變量。你能否重寫你的問題並將內容腳本從父文檔概念中分離出來? (這與0%的比例有什麼關係?) – serg 2011-01-11 20:09:10

回答

2

Chrome瀏覽器擴展沒有訪問腳本的網頁加載並使用。

谷歌稱這個與世隔絕的世界:

http://code.google.com/chrome/extensions/content_scripts.html

你不能......

使用變量或函數由它們的擴展的頁面

使用變量或函數的定義由網絡定義其它內容腳本的網頁或

所以,這裏沒有什麼腳本。重要的是,您包括您在您的清單中需要的腳本:

"content_scripts": ['jquery.js', 'myScript.js', 'optionsScript.js'], 

列表事項的順序,所以如果你的腳本使用jQuery的那麼的jquery.js應先於它。

相關問題