2013-03-14 4 views
-1

Например:Javascript в innerhtml не работает

<html> 
    <div id="media">123</div> 
    <a href="javascript:void(0)" onClick="return fun()">Click</a> 
    <script type="text/javascript"> 
     function fun() { 
      document.getElementById("media").innerHTML = '<script type="text/javascript">alert("working");<\/script>'; 
     } 
    </script> 
</html> 

После нажатия предупреждение не отображается.

alert("working"); является лишь примером. Я хочу, чтобы он закончил одну работу другой javascript . У меня есть работа, которую нужно обрабатывать через ajax, должен был использовать innerHTML

+0

Возможные dupplicate из http://stackoverflow.com/questions/1068517/why-cant-i-add-a-string-containing-a-script-tag-to-innerhtml-in-ie. – antoyo

ответ

6

HTML-spec указывает, что сценарий теги, вставленные с помощью innerHTML не должны быть выполнены. Это соображение безопасности.

Есть еще способы сделать это, если вы определились, например, добавив его в обработчики img или создав элемент сценария, вставив его в DOM и изменив его свойство text. Я не буду подробно останавливаться на них, поскольку это обычно считается несколько отрывочным. Если вы не пытаетесь внедрить скрипт, вы должны включить элемент сценария в источник страницы.

0

Ваша функция JS должна быть такой.

function fun() { 
    alert("working"); 
} 
+0

Предупреждение («рабочий») является просто примером. Я хочу, чтобы он закончил одну работу другой javascript – user2171180

1
<script type="text/javascript"> 

function fun() { 
    alert("working"); 
} 
</script> 

<div id="media">123</div> <a href="javascript:void(0)" onClick="fun();">Click</a> 
+0

alert («working»); это просто пример. Я хочу, чтобы он закончил одно задание, другое javascript – user2171180

+0

@ user2171180 Ну просто введите код javascript внутри функции fun(), не нужно вставлять его с innerHTML. Зачем это нужно? – user2019515

+0

@ пользователь2171180. В точку. Запустите javascript ОТ функции fun. Вы никогда не должны вставлять его в innterHTML. Мой ответ все еще решает вашу проблему. –

Смежные вопросы