我注意到在使用此代码的在线编辑器时:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
$(document).ready(function () {
$("button").click(function () {
$("p").hide();
});
});
</script>
<script>
</script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>
</body>
</html>
代码和一切在网络编辑器上运行正常,但是,添加直接复制到HTML文件中的相同代码不会产生所需的结果。我究竟做错了什么?它也适用于jsfiddle,但我想知道为什么纯源(上面)不起作用。就像我在任何处理jQuery的网站上找到的所有代码示例一样。
答案 0 :(得分:6)
当您使用//
前缀指定脚本网址时,浏览器会自动应用当前文档的协议 - 在您的情况下可能会file:
要解决此问题,请从Web服务器(例如:apache)运行它,或使用http://
作为jquery脚本URL的前缀。
答案 1 :(得分:0)
因为它会尝试从以下版本获取jQuery:
file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
答案 2 :(得分:-1)
如果您正在开发没有网络服务器,那么在没有https://
或http://
的情况下,它将无法工作。
如果您要将该文件上传到服务器,它就能正常工作。
<强> HTTTypo? 强>
从以上链接:
使用无协议参考时要记住的主要警告 是通过file:///加载的页面会失败(即HTML页面你 直接从磁盘加载到您的浏览器)。所以,一定要包括 如果你正好在没有开发的情况下开发URL中的http:protocol Web服务器,但不要担心省略它。