как обработать или распарсить javascript
Здравствуйте!
суть такая я делаю AJAX запрос получаю страничку в которой есть код <script type="text/javascript"> var number = '583'; и здесь еще куча кода js </script> как мне а) выполнить этот код и получить то что он делает б) возможно ли его распарсить и получить именно javascript кусок кода в теге <script type="text/javascript"></script> ? |
Цитата:
<head></head> Цитата:
var str='<script type="text/javascript">'; str+='alert("Test");'; str+='</'+'script>'; alert(str.match(/<script type="text\/javascript">(.*)(?=<\/script>)/)[1]); |
хорошо вот в js который на странице есть в теге javascript такая строчка
KAPI=ADAS('&*yikku6t*78FDS43=rrwe676jUY%4gfdgH568' ); как мне получить эту строчку, а в идеале то что содержится в скобках тоесть вот это &*yikku6t*78FDS43=rrwe676jUY%4gfdgH568 |
Цитата:
var str='KAPI=ADAS(\'&*yikku6t*78FDS43=rrwe676jUY%4gfdgH568\' ); alert( \'tmp\' );'; alert(str.match(/KAPI=ADAS\('(.*?)(?=' \);)/)[1]); |
Цитата:
var response = '<script type="text/javascript">alert("Foo")<\/script><div>Bla</div><script>alert("Bar")<\/script>'; var pattern = /<script[^>]*?>([\s\S]+?)<\/script>/gi; var result; while(result = pattern.exec(response)) { eval(result[1]); } |
спс всем!
|
Цитата:
|
ksa, а что не так? eval не стоит использовать там, где это не безопасно. А тут, по сути, нужно запустить свои же скрипты, так что разницы особо нет, или же создать новый тэг script.
|
Вместо eval лучше использовать либо (0,eval), либо Function, либо тег скрипт.
просто eval плох тем, что выполняет код в локальном контексте, а не потому что в принципе выполняет код из строки. От этого бывает ряд проблем. Ну и, конечно, если возник сабж, то что-то не совсем правильно в архитектуре. Подозреваю, что идеальным результатом рефакторинга был бы запрос json, в котором есть данные под шаблонизацию и данные для выполнения некоторого скрипта, уже имеющегося на странице. |
Цитата:
|
Часовой пояс GMT +3, время: 09:37. |