Не работает загруженный файл jquery в content_script в расширении chrome - PullRequest
2 голосов
/ 11 января 2011

Я новичок в разработке плагинов для Chrome.Я разрабатываю новый новый плагин, используя это расширение Chrome.

Мое требование - загрузить файл 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);

}
}

Пожалуйста, предложите это.

Спасибо.

1 Ответ

2 голосов
/ 03 июля 2011

Расширения Chrome не имеют доступа к сценариям, которые загружает и использует веб-страница.

Google называет эти изолированные миры:

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

Вы не можете ...

Использовать переменные или функции, определенные страницами их расширения

Использовать переменные или функции, определенные веб-страницами или другими скриптами содержимого

Итак, этоне имеет значения, какие сценарии есть.Важно то, что вы включаете необходимые скрипты в свой манифест:

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

Порядок списка имеет значение, поэтому, если ваш скрипт использует jquery, ему должен предшествовать jquery.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...