eval() не может оценить innerHTML

У меня есть следующая структура кода

<script>  
function load_script()
{
  eval( document.getElementById("mydiv").innerHTML );
}
</script>

<div id="mydiv">function sum(a,b){return a+b;}</div>

<input type="button" onclick="load_script()" value="Load Script">

<input type='button' value = 'Get Sum' onclick='sum(1,2)'>

Когда я нажимаю кнопку «Загрузить сценарий», чтобы запустить функцию load_script(), innerHTML не анализируется eval(), и в результате кнопка «Получить сумму» всегда терпит неудачу. Почему это так?


person user2314576    schedule 30.05.2013    source источник
comment
Что именно вы ожидаете здесь?? Я думаю, вам нужно снова начать с самого начала с написания Javascript   -  person CodingIntrigue    schedule 30.05.2013
comment
Blade0rz, Спасибо за прекрасный ответ.   -  person user2314576    schedule 30.05.2013


Ответы (1)


ниже код работал для меня.

<script>  
function load_script()
{
  eval( document.getElementById("mydiv").innerHTML + "");
}
</script>

<div id="mydiv">sum = function (a,b){return a+b;}</div>

<input type="button" onclick="load_script()" value="Load Script">

<input type='button' value = 'Get Sum' onclick='alert(sum(1,2));'>
person Rameshkrishnan S    schedule 30.05.2013
comment
<div id="mydiv">sum = function sum(a,b){return a+b;}</div> это тоже сработает. - person Rameshkrishnan S; 30.05.2013
comment
Это действительно работает в IE, Chrome и Firefox. Знаете ли вы, что такое поведение происходит? Спасибо Рамеш. - person user2314576; 30.05.2013