Not working loaded jquery file in the content_script in chrome extension

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-14 02:03:48

问题


I am new to this chrome extension plugin development. I am developing a new new plugin using this chrome extension.

My requirement is load jquery.js file into the content script when it is not having that js file(For Ex: I am checking for jquery.js file,fancybox.js file and if it is not there load these files. )

When i implement this logic in content script it is loading the jquery.js file. After that it is not working in content script . It is showing $(or) jQuery is undefined. For every time it is loading,but not executing in the content script.

Here is the code what i implemented.

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);

}
}

Please suggest on this.

Thanks.


回答1:


Chrome Extensions do not have access to the scripts the web page loads and uses.

Google calls this isolated worlds:

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

You cannot...

Use variables or functions defined by their extension's pages

Use variables or functions defined by web pages or by other content scripts

So, it doesn't matter what scripts are there. What matters is that you include the scripts you need in your manifest:

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

The order of the list matters so if your script uses jquery then jquery.js should precede it.



来源:https://stackoverflow.com/questions/4658143/not-working-loaded-jquery-file-in-the-content-script-in-chrome-extension

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!