我在除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脚本,并且工作正常。
答案 0 :(得分:1)
您的代码似乎很好。
我尝试使用此代码
<!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.");
,是否会显示?答案 1 :(得分:1)
问题出现在mainScript.js
的其他地方。
{ class: 'someclass' }
作为参数发送到某个方法,而class是保留字。
这可能也会在其他浏览器中出错,但他们很乐意忽略它并继续前进。
修复只是将其更改为{ 'class': 'someclass' }