2012-04-02 2 views
1

В моем проекте мне нужно получить содержимое во всех тегах скриптов. Я в состоянии сделать это, просто включаяКак получить динамические скрипты из javascript

var scrpt=document.getElementsByTagName('script'); 
script_txt=scrpt[i].innerHTML; 

, но используя код выше я не получаю динамические скрипты, которые создаются

var s=document.createElement('script'); 
s.src="http://somefile.js"; 

не только этого есть много других способов создания динамических скрипты как

document.write('<script src="">'); 

и

document.body.innerHTML='<script src="">'; 

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

var pattern=/([a-zA-Z0-9_\.].*?)=(document.createElement\((.*)\)); 
/g; 

но это может быть не все.

Может кто-нибудь предложить лучший способ для достижения этого свойства.

+0

Попробуйте document.scripts – McGarnagle

+0

Я даже пробовал это, но это не дает динамического скрипта, созданного – user1275375

+2

. Основная проблема здесь: КОГДА вы используете функцию для извлечения скриптов. Существуют сценарии, которые будут извлекаться только после нажатия пользователем (например, рекламы). Поэтому вы хотите убедиться, что триггеры вашей функции «сбора» выполняются после таких событий. –

ответ

0

Я думаю, что вы хотите увидеть эту ссылку: HTTP: //www.webdeveloper.com/forum/archive/index.php/t-93990.html

Это должно помочь вам с вашей проблемой

1

Первый способ, который вы упомянули, используя document.getElementsByTagName('script'), в порядке.

Я написал скрипку, где я подсчитываю теги скриптов до и после вставки тега динамически. Он работает нормально. http://jsfiddle.net/crGx9/

Не могли бы вы показать нам пример того, когда это не сработает?

+0

Это прекрасно работает для вашей страницы. но представьте, если вы считаете скрипты на другой веб-странице, предположите, что вы извлекаете скрипты с google.com с помощью пользовательских скриптов, то как это можно сделать? – user1275375

+0

Вы убедились, что вы не работаете в iframe, например? 'document.getElementsByTagName' будет получать теги только из того же фрейма, в котором вы выполняете. – Jakob

+0

НЕТ Я не использую никаких фреймов – user1275375

Смежные вопросы