【发布时间】:2011-05-22 05:25:58
【问题描述】:
我在自己的 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 函数。
任何帮助将不胜感激。
亚当
【问题讨论】:
-
如果是这样,您希望我们做什么?您唯一的选择是将 JS 代码放在主体中。告诉我们您的服务器端代码是什么语言,发布您当前的代码,我们会尽力为您提供指导。
-
不可能将所有功能都放入主页,因为某些功能包含动态内容,例如在加载 div 内容时检查的会话数据。
-
查看gymadvisory.co.uk 按下 Find Gyms 它可能会显示一个无样式的页面 - 这是因为 button 元素还没有 type="button" 属性并且因为 jquery 分配的 click 函数试图调用 javascript 函数它找不到它提交 - 添加缺少的属性将停止,但然后按下按钮什么都不做
-
另外——一旦显示无样式的页面,按下返回按钮并重试——它现在应该可以工作了!不知道为什么返回的页面应该可以工作
-
恢复到以前版本的应用程序,看起来还可以,所以一定是 javascript 更改中的错误,尽管仍然是奇怪的行为。
标签: javascript safari referenceerror