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

Chrome中子窗口打开为空且控制台报Invalid JSON错误求助

解决Chrome中window.open弹窗为空的问题

嘿,我来帮你梳理下这个问题的可能原因和解决方案~

你提到弹窗在Firefox正常显示,但Chrome里为空,还出现了Uncaught Invalid JSON的错误,结合你的代码,咱们可以从这几个方向排查:

1. 先检查目标页面本身的兼容性

直接在Chrome地址栏打开http://192.168.1.104:1007/print/coupon,看看页面能不能正常加载:

  • 如果直接打开也异常,那问题出在目标页面本身——比如页面里有Chrome不兼容的JS代码,或者服务器返回的内容格式有误(比如把HTML页面的Content-Type标成了application/json,这就会触发控制台的JSON解析错误)。
  • 如果直接打开正常,再聚焦到弹窗的触发逻辑上。

2. 确认弹窗是否由用户主动触发

Chrome对非用户主动触发的弹窗有更严格的安全限制,比如你的代码如果是页面加载时自动执行的(不是用户点击按钮/链接触发),Chrome可能会限制弹窗的内容加载。

建议把弹窗代码放在用户点击事件里,比如:

// 假设页面有个id为openPopupBtn的按钮
$('#openPopupBtn').click(function() {
  var popup = window.open("http://192.168.1.104:1007/print/coupon", "Popup", "width=500,height=500");
  // 监听弹窗加载完成后再聚焦,避免提前操作导致异常
  popup.onload = function() {
    popup.focus();
  };
});

3. 排查JSON解析错误的来源

控制台的Invalid JSON错误,大概率是某段代码把非JSON格式的内容当成JSON解析了:

  • 检查主页面有没有代码会读取弹窗的内容并执行JSON.parse()操作?如果弹窗返回的是HTML页面,这样解析肯定会报错。
  • 检查目标页面的响应头,确保Content-Type是text/html(如果是HTML页面的话),别错误设置成application/json。

4. 临时禁用Chrome扩展试试

有时候Chrome的广告拦截、隐私类扩展会干扰弹窗的内容加载,可以临时禁用所有扩展再测试,看看是不是扩展导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:30:55