Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вставка скрипта через innerHTML (https://javascript.ru/forum/events/45979-vstavka-skripta-cherez-innerhtml.html)

cript 23.03.2014 06:15

Вставка скрипта через innerHTML
 
Приветствую!
Появилась задача передать скрипт через innerhtml.
Делаю так
var abc = '<script>alert(22)</script>';
document.getElementById('someblock').innerHTML = abc;

скрипт передается но не работает..
На форуме есть подобные темы но никто так и не дал подходящего ответа.
Кто знает как это можно сделать?

danik.js 23.03.2014 06:49

Никак. Скрипты при вставке через innerHTML не исполняются. Это заложено в парсер браузера и это никак не изменить. Зато можно использовать обходные варианты.

cript 23.03.2014 12:05

Цитата:

Сообщение от danik.js
Зато можно использовать обходные варианты.

Не знаю можно ли это назвать обходным вариантом, но это сработало..

<div id="container"></div>
    <script type="text/javascript">
    var data="<div class='blocked'><script type='text/javascript'>alert(4);<\/script></div>";
    document.getElementById("container").innerHTML = data;
    var elements = document.getElementById("conteiner").getElementsByTagName("script");
    for (var i=0,len=elements.length;i<len;i++) {
     eval.call(window,elements[i].innerHTML);  
   }
 </script>

Vlasenko Fedor 23.03.2014 14:44

<body>
    <script>
      var script = document.createElement("script");
      script.text = "alert('Yes');";
      document.body.appendChild(script);
    </script>
  </body>


Часовой пояс GMT +3, время: 05:02.