我在除 Safari 之外的所有浏览器中使用某些功能时遇到问题,我已将问题减少到这一点。
在我的页面中,我的 body 元素末尾有以下脚本声明:
<script type="text/javascript" src="../../Scripts/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery-ui-1.8.11.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.ui.autocomplete.html.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.textchange.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.reveal.js"></script>
<script type="text/javascript" src="../../Scripts/mainScript.js"></script>
然后在 mainScript.js 文件中,我放入了以下代码:
$(function () {
alert("found");
});
在所有其他浏览器中,它会显示一个消息框,但在 Safari 中它什么也不做。
Safari 的 javascript 调试器列出了脚本,并且可以看到内容,但由于某些原因没有包括在内。
我发现这个问题是因为我试图从 html 页面内的内联脚本调用 mainScript.js 中的函数(内联脚本定义在 mainScript.js 定义下方),Safari 调试器提示该函数不是随处可见。
我在这里做错了什么,为什么 Safari 不包含这个脚本。所有 jquery 脚本都包含在内并且运行良好。
请您参考如下方法:
你的代码看起来不错。
我试过这段代码
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Test</h1>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
alert("Test");
});
</script>
</body>
</html>
它工作正常(Windows 7 上的 Safari 5.0.5 7533.21.1)。
几个问题:
- 您是否尝试过从错误控制台手动调用您的函数?有用吗?
- 如果在文档就绪函数之外放置一个简单的
alert("Test.");
,它会显示吗? - 如果您从错误控制台调用 jQuery 的函数,您会得到什么?它们有效吗?