我自己的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.