JS中window.open()触发HTTP Error 404.0 - Not Found问题求助
解决点击按钮打开新页面后原页面出现404的问题
问题出在你home.js里的函数写法上——你错误地把window.open()的返回值赋值给了location.href,这才导致原页面跳转到无效地址触发404。
错误原因解析
window.open("second.html")本身就会在新标签页打开目标页面,它的返回值是新打开窗口的对象,而不是一个合法的URL。当你执行location.href = 这个窗口对象时,JavaScript会把对象转换成字符串"[object Window]",原页面就会尝试导航到这个不存在的路径,服务器自然返回404。
修复方案1:简化JavaScript代码
直接调用window.open()即可,不需要给location.href赋值:
function this_but(){ window.open("second.html"); }
修复方案2:用HTML原生实现(无需JS)
如果不需要额外的JS逻辑,其实可以直接用<a>标签模拟按钮效果,更符合语义化且更简洁:
<a href="second.html" target="_blank" style="display: inline-block; padding: 3px 10px; border: 1px solid #aaa; border-radius: 2px; background: #f5f5f5; text-decoration: none; color: #333;">Button</a>
这样点击后同样会在新标签页打开second.html,原页面完全不受影响。
内容的提问来源于stack exchange,提问作者Monochromatic
相关产品推荐
相关产品推荐

