2010-12-08 76 views
3

我有自己的DIV野生动物园的ReferenceError:找不到变量

<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函数。

任何帮助,将不胜感激。被动态地添加到页面

亚当

+0

如果是这种情况,您希望我们做什么?你唯一的选择是把JS代码放在主体中。告诉我们您的服务器端代码是什么语言,发布您当前的代码,我们将尽力引导您完成此操作。 – 2010-12-08 13:31:11

回答

5

的Javascript需要是EVAL-d,以便正确地初始化。

为了正确地为函数定义工作,它们需要以不同的方式进行格式化。例如:

<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。

相关问题