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

window.open打开页面后注入外部代码失败求助

问题分析与解决方案

核心原因

你这问题核心就是浏览器同源策略和目标页面的**内容安全策略(CSP)**在搞事情:

  • 同源策略直接禁止不同源的窗口(你当前页面和chrome.google.com的页面)互相访问或执行脚本,所以你没法通过newWin直接调用目标窗口的eval、fetch这些方法。
  • Chrome应用商店的页面CSP配置特别严,不仅拦eval执行,还不让加载外部域名的脚本,连javascript:伪协议的脚本都会被拦截。

为啥你的尝试全失败

  • 方法1:跨源情况下根本碰不到newWin的window对象,就算能调用,目标页面的CSP也会把javascript:的脚本请求掐了。
  • 方法2:直接调用newWin.fetch违反同源策略,浏览器直接就把这个跨源请求拦了,根本发不出去。
  • 方法3:跨源下newWin.eval根本跑不起来,而且你这代码本身还写错了——缺了闭合的引号和括号。

能行的办法(仅限合法场景)

如果是正经需求(比如做Chrome扩展),可以用Content Script来实现脚本注入:

  1. 在扩展的manifest.json里配好匹配规则:
{
  "manifest_version": 3,
  "content_scripts": [
    {
      "matches": ["https://chrome.google.com/webstorex/*"],
      "js": ["inject.js"]
    }
  ]
}
  1. 把要注入的逻辑写到inject.js里(要是需要加载外部脚本,得通过扩展的background页面中转,不然还是会被CSP拦)。

划重点:非Chrome扩展的场景下,别想绕过浏览器的安全限制往Chrome商店页面塞外部脚本——这是浏览器的安全防护机制,就是用来防这种跨源脚本注入的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:05:23