You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript基于prompt输入值打开弹窗with语句写入内容无显示问题求助

修正方案

核心问题梳理

  • 拼接页面内容时未插入用户输入的yourText变量,新窗口body节点为空
  • 内嵌script的结束标签未转义,会被外层脚本解析为当前脚本的终止标记,代码执行中断
  • writeToDocument函数未定义闭合标记,也没有被调用,逻辑不会自动执行
  • with语句内重复添加docWindow.document前缀,不符合作用域绑定后的使用规范

修正后完整代码

<script>
function writeToDocument(){
    var textColor, backColor, pageTitle;
    var yourText, pageContent, docWindow;

    textColor = prompt("请输入文本颜色:","white");
    backColor = prompt("请输入背景颜色:","black");
    pageTitle = prompt("请输入页面标题: ","默认标题");
    yourText = prompt("请输入新页面的内容:", "页面内容");

    pageContent = "<html><head><title>";
    pageContent += pageTitle + "</title>";
    // 转义结束script标签,避免截断外层脚本
    pageContent += "<script>alert('页面「' + document.title + '」创建时间:' + document.lastModified)<\/script>";
    // 插入用户输入的内容到body中
    pageContent += "</head><body><strong>" + yourText + "</strong></body></html>";

    docWindow = open("","docWin","width=250,height=150,resizable=1,status=1");
    with (docWindow.document){
        // 所有操作都在with作用域内完成,符合要求
        open();
        bgcolor = backColor;
        fgcolor = textColor;
        write(pageContent);
        close();
    }
}
// 调用函数触发逻辑
writeToDocument();
</script>

效果说明

运行后会依次弹出4个输入框接收用户配置,最终打开的新窗口会自动弹出页面创建时间提示,同时展示用户输入的内容,背景和文本颜色与配置一致。

内容的提问来源于stack exchange,提问作者Lucia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:12:01