Как я могу получить содержимое файла, указанного как 'src' тега <script>? - PullRequest
62 голосов
/ 29 сентября 2008

Если у меня есть такой скрипт-тег:

<script
    id = "myscript"
    src = "http://www.example.com/script.js"
    type = "text/javascript">
</script>

Я хотел бы получить содержимое файла "script.js". Я думаю о чем-то вроде document.getElementById("myscript").text, но в этом случае это не работает.

Ответы [ 15 ]

0 голосов
/ 29 сентября 2008

.text получил содержимое тега, просто у вас ничего нет между открытым тегом и конечным тегом. Вы можете получить атрибут src элемента, используя .src, а затем, если вы хотите получить файл javascript, вы перейдете по ссылке и сделаете для него запрос ajax.

0 голосов
/ 29 сентября 2008

Если указан атрибут src, пользовательские агенты обязаны игнорировать содержимое элемента , если вам нужен доступ к нему из внешнего скрипта, то вы, вероятно, делаете что-то не так.

Обновление: я вижу, что вы добавили комментарий о том, что вы хотите кэшировать скрипт и использовать его позже. Для чего? Предполагая, что ваш HTTP поддерживает кеш , браузер уже позаботится о ваших потребностях в кэшировании.

0 голосов
/ 29 сентября 2008

Если вы ищете доступ к атрибутам тега <script>, а не к содержимому script.js, тогда XPath вполне может быть тем, что вам нужно.

Это позволит вам получить каждый из атрибутов скрипта.

Если вам нужно содержимое файла example.js, вы можете запустить AJAX-запрос для его извлечения.

0 голосов
/ 29 сентября 2008

если вы хотите содержимое атрибута src, вам нужно будет выполнить ajax-запрос и посмотреть текст ответа. Если вы находитесь между js и можете получить к нему доступ через innerHTML.

Это может представлять интерес: http://ejohn.org/blog/degrading-script-tags/

0 голосов
/ 29 сентября 2008

Не знаете, зачем вам это нужно?

Другим способом было бы держать скрипт в скрытом элементе где-нибудь и использовать Eval для его запуска. Затем вы можете запросить у объекта innerHtml свойство.

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