Подтвердить что ты не робот

Инъекция AngularJS 1.4.7 в расширение перекрестного IE

Я разрабатываю расширение для браузеров с использованием инфраструктуры Crossrider. Я использую строку

appAPI.resources.includeJS('js/angular.min.js');

чтобы ввести angular.js в расширение. Это отлично работает в Chrome, но в IE 11 я получаю сообщение об ошибке

---- JS Exception from: IE test staging ----
Error: Object expected
Source: Microsoft JScript runtime error
Location: resources
Line: 131

Я огляделся и нашел несколько ответов, в которых говорилось, что может отсутствовать jQuery или может быть конечная запятая в самом коде. Тем не менее, я использую

var jq = document.createElement('script');
jq.src = "http://code.jquery.com/jquery-1.11.3.js";
document.getElementsByTagName('body')[0].appendChild(jq);

для ввода jquery в документ, поэтому это не должно быть проблемой. Что касается возможности наличия конечной запятой в JS, то я изменил ее с мини-до неопределенной версии AngularJS, но все же получил ту же ошибку, что заставляет меня думать, что номер строки в ошибке не имеет смысла. Если это позаботится или забудет, что бы ни случилось. Может кто-нибудь, пожалуйста, скажите мне, что происходит и как это исправить?

PS. Моя среда - это Windows 7 Ultimate 32 бит на рабочей станции VMWare 12 на машине с 64-разрядной битбой Ubuntu 14.04

4b9b3361

Ответ 1

Я думаю, что у вас есть смешанная проблема scopes. appAPI.resources.includeJS запускается в области расширения страницы, в которой элемент jq вы использовали добавление прогонов в области HTML-страницы, Если вы хотите добавить AngularJS в область HTML-страницы, используйте appAPI.resources.addInlineJS следующим образом:

var jq = document.createElement('script');
jq.src = "https://http://code.jquery.com/jquery-1.11.3.js";
document.getElementsByTagName('body')[0].appendChild(jq);
appAPI.resources.addInlineJS('js/angular.min.js');

[ Раскрытие информации: Я сотрудник Crossrider]