var name= prompt("enter your name");
var age= prompt("enter your age");
var pet_name= prompt("enter your fav pets name");
alert("hi "+name+" your age is "+age+"and you love"+pet_name);
console.log("hi "+name+" your age is "+age+"and you love"+pet_name);
<!DOCTYPE html>
<html>
<head>
<title>testing javascript</title>
</head>
<body>
<h4>Testing of my first java script</h4>
<script type="text/javascript" src="test_1.js"></script>
</body>
</html>
答案 0 :(得分:1)
我相信这是因为提醒,确认和提示都是阻止&#39;函数和它们在渲染发生的同时被调用,尝试将代码放入setTimeout或文档就绪:
document.addEventListener("DOMContentLoaded", function(event) {
// your code
});
或
var delayedScript = function() {
// your code
}
setTimeout(delayedScript, 500);
https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt#Notes
对话框是模态窗口;它们阻止用户访问程序界面的其余部分,直到对话框关闭
答案 1 :(得分:0)
看起来您的代码执行得很好,因此我能想到的唯一结论是脚本标记未正确实现。
确认其名称确实是&#39; test_1.js&#39;,并且它与您的html所在的文件位于同一位置。
如果不是,您可以使用relative path。
其他几点:
我希望这会有所帮助:)
答案 2 :(得分:0)
该行为是特定于浏览器的。在呈现页面之前,特定浏览器可能会等到页面的输入流结束:可能仍然需要在页面顶部呈现位于文件末尾附近的定位元素。
现在,javascript中的弹出对话框,如alert
,confirm
和prompt
对脚本有一个同步阻止操作,可以暂停HTML解析,直到它们被响应为止。因此,浏览器(例如Chrome)在页面输入完成之前不会呈现,在提示被解答或解除之前,不会显示脚本块上方的文本。
Firefox等逐渐渲染页面的浏览器可能会显示脚本块上方的文本。
SO中的代码段工具的工作方式不同。它处理HTML框中的内容,将其放入输出窗格,然后处理脚本面板中的内容。所以HTML内容首先出现。
需要等待窗口“加载”或文档“DOMContentLoaded”事件的代码片段未使用代码段工具正确测试。
在页面呈现后使用弹出对话框的一般解决方案(如已建议)推迟处理相关代码,直到在文档上触发“DOMContentLoaded”事件或在窗口上“加载”为止。