我在Google Chrome中加载JavaScript时遇到问题。
我使用简单的警报消息创建了单独的js文件,然后在body标记结束之前将其链接起来。
谷歌浏览器首先会显示警告框,然后点击“确定”状态。内容已加载。
在其他浏览器中它工作正常,我的意思是警报框同时显示网页的内容。
简而言之,即使我将脚本标记放在body标记的末尾之前,Google Chrome也会先加载javascript。
alert("Hello World!");

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Write Your First Program</title>
<!-- Bootstrap Core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="css/styles.css" rel="stylesheet">
</head>
<body>
<!-- Header -->
<header class="header">
<div class="text-vertical-center">
<h1>Write Your First Program</h1>
<h3>JavaScript Essentials</h3>
<br>
</div>
</header>
<script src="js/scripts.js"></script>
</body>
</html>
&#13;
你知道如何解决这个问题吗? 非常感谢
答案 0 :(得分:1)
您的问题是您的脚本有标记async
,它可以执行whitout来处理网页加载状态。删除async
标记,或将其替换为defer
,在页面加载后执行脚本。
为了防止脚本和html / css加载时间冲突出现任何问题,您应该使用window.onload = function() { //code here }
封装 Javascript 的脚本。这将保证在执行代码之前加载整个页面。
答案 1 :(得分:1)
那是Chrome的问题。 chrome的开发者由于某种原因仍未纠正该问题。如果您有警报或提示弹出窗口,这是用户在您的网站上必须与之交互的第一件事,则在关闭弹出窗口之前,chrome不会加载HTML。
答案 2 :(得分:0)
尝试将jquery CDN包含在正文脚本标记上方。
<script
src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E="
crossorigin="anonymous">
</script>
这会很好!
答案 3 :(得分:0)
我也遇到了这个问题,并意识到我的Google chrome正在加载页面的缓存版本(将我的脚本标签放在底部附近的页面)。 关闭窗口并重新打开页面可以正常工作。
答案 4 :(得分:0)
async
和defer
布尔属性仅在将脚本插入页面顶部时才有用。如果您将脚本放在如上所示的正文页脚中,它们将无用。
(请参阅以下文章:https://flaviocopes.com/javascript-async-defer/)。
我也面临类似的问题,并且将window.onload = funcRef;
与已清除的缓存一起使用也不适用于我的Google chrome。我曾尝试通过禁用所有浏览器扩展程序来尝试所有这些操作,但徒劳无功。
我终于能够解决问题,但并没有解决,但可以达成共识-可以包含
jQuery CDN
在我体内的JavaScript脚本之前。希望这可以帮助。