Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2014, 08:15
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

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

скрипт передается но не работает..
На форуме есть подобные темы но никто так и не дал подходящего ответа.
Кто знает как это можно сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2014, 08:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Никак. Скрипты при вставке через innerHTML не исполняются. Это заложено в парсер браузера и это никак не изменить. Зато можно использовать обходные варианты.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2014, 14:05
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Сообщение от 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>
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2014, 16:44
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

<body>
    <script>
      var script = document.createElement("script");
      script.text = "alert('Yes');";
      document.body.appendChild(script);
    </script>
  </body>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IE через innerHTML не видит методов флэшки (которые EnternalInterface) sociofilm Internet Explorer 1 04.04.2012 12:54
Вставка SMARTY функции в innerHTML fiw Элементы интерфейса 3 23.08.2011 23:58
fancybox не работает на ссылках, созданных через innerHTML alexus jQuery 2 22.06.2011 01:08
Вставка скрипта с помощью innerHTML hryachok Events/DOM/Window 11 06.04.2010 14:52
Повторное действие скрипта через определенное время fortitudo jQuery 8 27.01.2010 06:00