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