使用这个非常简单的示例,我可以说明我在Chrome和Firefox执行jQuery功能时遇到的问题:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p id="test">This is another paragraph.</p>
<button>Click me</button>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#test").hide();
});
});
</script>
</body>
</html>
当我在本地服务器(MAMP)上运行时,使用Chrome和Firefox都可以正常运行。但是当我将它上传到我的实时网站(在GoDaddy上托管)时,jQuery脚本不会使用任何一个浏览器执行。有趣的是,Safari在MAMP服务器和实际站点上都可以正常工作。有谁知道为什么Chrome和Firefox没有?
上面的代码是从w3schools.com复制并粘贴的,我借用它来查看我是否可以用我自己的代码复制我遇到的问题。我发现用这个非常简单的例子可以复制这个问题,我感到非常惊讶!有关浏览器兼容性问题的stackoverflow上有很多帖子,但在这种情况下浏览器兼容性似乎不太可能,因为当从MAMP服务器运行代码时,两个浏览器都能正常工作。
我还联系了GoDaddy,询问是否有可能需要更改的环境设置。我得到的回答是我的代码出了问题。我觉得很难相信,因为我可以用w3schools.com这个非常简单的代码来复制这个问题。然后有一个事实是Safari在两种环境中都能很好地工作,这让我回想起浏览器。
我很感激您可能有任何见解。
答案 0 :(得分:1)
问题是jQuery库被引用的方式。在我的示例中,源是http:,但我的实时站点上有SSL证书。将地址更改为jQuery CDN为https:解决了问题。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
仍然很好奇Safari对此没有任何问题,而其他浏览器也是如此。我也很好奇我已经使用jQuery CDN引用我的网站运行了六个月,其中包含大量带有jQuery的页面,之前没有任何问题。无论如何,这个小小的变化今天就成功了。如果您在某些环境中使用jQuery而不是其他环境有类似的经验,请添加检查是否有SSL证书到检查列表。