Запутался с регуляркой
Не могу достать весь код из тега <script>
Нужно учесть переносы строк, но я вписываю \s* по всякому пробовал, ни работает // В строке (переменной) d "содержится" куча предложений, переносов строк, пробелов а так же тег <script> в котором JS код который нужно выдернуть d.replace(/<script type="text\/javascript">(.+)<\/script>)/mg,function(str, p1) { alert(p1);//Выводим полученный результат return ""; }); |
Можешь обїяснить зачем єто извращение нужно?
|
Poznakomlus,
Через innerHTML не рекомендуется вставлять JS код, да и не везде такой подход работает, а мне нужно выдернуть весь JS до того как данные будут вставлены через innerHTML и подключить код через createElement("script").... |
zhurchik,
:-? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <script> document.body.innerHTML.replace(/<scri[\s\S]*?>([\s\S]*?)<\/scri/mg,function(str, p1) { alert(p1);//Выводим полученный результат return ""; }); </script> </body> </html> |
через через innerHTML код вставляется но не исполняется :)
<div id="test"></div> <script> test.innerHTML = '<script>alert("Yes")<\/script>'; var scr = document.querySelector('script'); eval(scr.text); </script> |
рони,
Спасибо, друг))) |
Poznakomlus,
Я знаю. Но код лучше запустить до того как будет вставлено содержимое, поэтому я решил для начала его выдернуть |
Poznakomlus,
Дело в том, что содержимое от сервера я получаю в виде HTML, а сделано это для того, чтобы сайт работал даже когда JS отключен (то-бишь, для поисковиков), то-есть, с таким подходом можно будет делиться ссылками и т.д., а если все это дело посадить на JSON или XML то по прямой ссылке уже не перейти. Вообще как то так, надеюсь смог рассказать! |
Часовой пояс GMT +3, время: 18:09. |