Запутался с регуляркой
Не могу достать весь код из тега <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, время: 05:39. |