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

如何使用原生JavaScript通过window.open打开注入自定义JS的外部网页

实现方案说明

1. 新窗口地址与当前页面同源的场景

这种场景可以直接实现注入需求,你可以拿到新窗口的window和document对象,直接插入自定义脚本即可,示例代码如下:

// 打开同源页面,可替换为你自己站点下的页面路径
const newWindow = window.open("/your-page-path", "_blank", "width=400,height=400")
// 监听新窗口加载完成事件,避免注入失败
newWindow.onload = () => {
  // 创建要注入的脚本节点
  const injectScript = newWindow.document.createElement('script')
  // 填写自定义脚本内容
  injectScript.textContent = `
    alert('自定义代码注入成功');
    // 此处可添加任意你要执行的自定义逻辑
  `
  // 把脚本插入新窗口的文档中
  newWindow.document.body.appendChild(injectScript)
}

2. 新窗口地址是跨域外部站点的场景

这种场景下没有纯原生前端的可行实现方案,原因是浏览器的同源策略安全限制:当新窗口加载的域名、协议、端口任意一项和父页面不一致时,父页面会被禁止访问新窗口的所有DOM、window属性,自然也无法插入自定义脚本。这是浏览器的默认安全机制,目的是防止恶意站点篡改其他正规站点的页面内容、窃取用户敏感数据,没有绕过方法。
如果要实现跨域站点的代码注入,仅当你对目标外部站点有开发控制权时,可以在目标站点内预先编写接收postMessage消息的逻辑,父页面通过postMessage传递执行指令,目标站点收到指令后自行运行对应代码,但是该方案需要目标站点配合,无法单方面完成注入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:57:04