Javascript首先执行,然后加载正文中的文本 为什么在我的浏览器中,当我第一次运行它时,我的java脚本文件会运行,然后它会加载正文中的文本,但当我在stackoverflow javascript代码段工具中运行它时,它运行得很好。

Javascript首先执行,然后加载正文中的文本 为什么在我的浏览器中,当我第一次运行它时,我的java脚本文件会运行,然后它会加载正文中的文本,但当我在stackoverflow javascript代码段工具中运行它时,它运行得很好。,javascript,html,Javascript,Html,var name=prompt(“输入您的姓名”); 变量年龄=提示(“输入您的年龄”); var pet_name=提示(“输入您最喜欢的宠物名称”); 提醒(“你好”+姓名+“你的年龄是”+年龄+“你爱”+宠物名); 日志(“嗨”+名字+“你的年龄是”+年龄+“你爱”+宠物名) 测试javascript 测试我的第一个java脚本 看起来您的代码执行得很好,所以我能想到的唯一结论是脚本标记没有正确实现 验证它的名称确实是“test_1.js”,并且它与html所在的文件位于同一位置 如果不

var name=prompt(“输入您的姓名”);
变量年龄=提示(“输入您的年龄”);
var pet_name=提示(“输入您最喜欢的宠物名称”);
提醒(“你好”+姓名+“你的年龄是”+年龄+“你爱”+宠物名);
日志(“嗨”+名字+“你的年龄是”+年龄+“你爱”+宠物名)

测试javascript
测试我的第一个java脚本

看起来您的代码执行得很好,所以我能想到的唯一结论是脚本标记没有正确实现

验证它的名称确实是“test_1.js”,并且它与html所在的文件位于同一位置

如果不是,您可以使用

其他几点:

  • javascript类型是冗余的,因为javascript是web的默认脚本语言
  • 年龄变量和“love”字符串后缺少空格

  • 我希望这会有所帮助:)

    我认为这是因为警报、确认和提示都是“阻止”功能,它们在渲染发生的同时被调用,请尝试将代码放入setTimeout或document ready中:

    document.addEventListener("DOMContentLoaded", function(event) { 
      // your code
    });
    

    对话框是模态窗口;它们阻止用户访问程序界面的其余部分,直到对话框关闭


    该行为特定于浏览器。在呈现页面之前,特定浏览器可能会等待页面输入流的结尾:可能位于文件结尾附近的定位元素仍需要呈现在页面顶部

    现在,javascript中的弹出对话框,如
    警报
    确认
    提示
    对脚本具有同步阻止操作,可以暂停HTML解析,直到它们得到响应。因此,像Chrome这样的浏览器在页面输入完成后才会呈现,在提示被应答或取消之前不会显示脚本块上方的文本

    像Firefox这样递增呈现页面的浏览器可能会显示脚本块上方的文本

    SO中的代码段功能的工作方式不同。它处理HTML框中的内容,将其放入输出窗格,然后处理脚本面板中的内容。因此,HTML内容首先出现

    需要等待窗口“加载”或文档“DOMContentLoaded”事件的代码段未使用代码段工具进行正确测试


    页面呈现后使用弹出对话框的一般解决方案是(如前所述)延迟处理相关代码,直到在文档或“加载”上触发“DOMContentLoaded”事件在窗口上。

    元素之前的
    文档中呈现
    元素它对堆栈溢出不起作用…jsiddle显示问题:您是否尝试了
    延迟
    :使用了延迟仍然是相同的问题它只在第一次对代码段起作用。这个答案在那方面是不正确的point@SC87更改了js文件名并重试,并尝试了您提到的所有空格,但仍然相同problem@ChinmayaRanjanBiswal到底是什么问题,你还需要更改h4标签吗?@ChinmayaRanjanBiswal我刚刚在一个实时环境中看到了你的代码,并意识到了这个问题。您可以尝试将其包装到自己的函数中,并使用jQuery使用documentready调用它。函数myFunction(){var name=prompt(“输入你的名字”);var age=prompt(“输入你的年龄”);var pet_name=prompt(“输入你最喜欢的宠物的名字”);alert(“hi”+name+“你的年龄是”+age+“你爱”+pet_name”);console.log(“hi”+name+“你的年龄是”+age+“你爱”+pet_name);}$(document).ready(function(){myFunction();});第一个代码不起作用,但在手动将代码放入延迟脚本后,它起作用了
    var delayedScript = function() {
      // your code
    }
    
    setTimeout(delayedScript, 500);