javascript-野生动物园ReferenceError:找不到变量

我自己的DIV中有以下内容

<script>
function newfunc()
{
alert("here");
}
</script>
<button type="button" onclick="newfunc()">Press me</button>

在IE和FF上可以正常工作,但是在Safari(至少是Safari 4.0.5)上,它显示“ ReferenceError找不到变量”-现在内容已动态加载到DIV中,似乎Safari无法看到函数定义在此DIV中-但是,如果将函数newfunc()放在HTML主页面上(即不在DIV中),则按按钮确实会调用该函数.

好像Safari看不到已添加到DIV中的Javascript函数.

任何帮助,将不胜感激.

亚当

解决方法:

为了正确初始化,需要对动态添加到页面的Javascript进行评估.

为了使它对于函数定义正确起作用,它们的格式需要略有不同.例如:

<script>
newfunc = function()
{
alert("here");
}
</script>
<button type="button" onclick="newfunc()">Press me</button>

将内容添加到DIV之后,从DIV中提取所有标签元素并评估其内容.

例如,使用PrototypeJS(http://www.prototypejs.org/api/):

$(divid).innerHTML.evalScripts();

其中divid是您刚刚填充的内容的div的ID.

上一篇:我们如何在JavaScript中引发并捕获RangeError,ReferenceError,TypeError?


下一篇:javascript – TypeError:getElementById为null