Как метод getScript jQuery обеспечивает безопасное выполнение динамически загружаемого JavaScript? - PullRequest
5 голосов
/ 07 июня 2011

Я хочу динамически загрузить файл JS с помощью AJAX и выполнить его.Я имею в виду эту страницу , которая гласит: «В настоящее время предпочтительным способом внедрения кода JS является использование AJAX для загрузки источника JS, а затем eval () кода.»

Но я боюсь использовать eval для выполнения скрипта.Просто чтобы увидеть, как jQuery реализует это, я проверил его источник и нашел следующее:

getScript: function( url, callback ) {
    return jQuery.get( url, undefined, callback, "script" );
}

Затем я искал метод get jQuery.Но есть несколько методов get.Я новичок в ООП в JS и не понимаю, где искать правильный метод get.

Я хочу знать, как он выполняет скрипт - использует ли он eval или нет, и если да, то как онбезопасный.

Может ли кто-нибудь подсказать мне, как я могу найти правильный метод get.

1 Ответ

5 голосов
/ 07 июня 2011

Ничто не может гарантировать "безопасность" (что на самом деле не может быть сделано).
Вам нужно просто загрузить доверенные сценарии.

После некоторого делегирования jQuery вызовет метод с именем«globalEval», который запускает .execScript() (IE) или стандартный window.eval() для передаваемых файлов сценариев.В любом случае исполняемый скрипт имеет доступ ко всему.

...