我在除 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)。

几个问题:

  1. 您是否尝试过从错误控制台手动调用您的函数?有用吗?
  2. 如果在文档就绪函数之外放置一个简单的alert("Test.");,它会显示吗?
  3. 如果您从错误控制台调用 jQuery 的函数,您会得到什么?它们有效吗?


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!