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

求解析:这款Bookmarklet如何绕过网站的prompt()函数过滤机制?

解析Bookmarklet绕过prompt拦截的核心逻辑

核心绕过代码段

在c函数的开头部分,就是实现prompt拦截绕过的关键:

var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), /* 后续React组件操作代码 */)

具体实现逻辑

  1. 创建独立上下文的iframe:通过document.createElement("iframe")生成一个空的iframe元素,这个iframe拥有完全独立的JavaScript全局上下文,不受当前页面的代码篡改影响。
  2. 替换全局prompt函数:将当前页面的window.prompt替换为iframe上下文里的原生prompt函数,同时用bind(window)确保prompt弹窗的上下文还是当前页面(避免弹窗归属iframe)。
  3. 清理iframe:替换完成后立即移除iframe,页面上不会留下任何痕迹。

为什么能绕过拦截?

大多数网站拦截prompt的方式是重写当前页面的window.prompt函数(比如替换成空函数、自定义弹窗或直接禁用),但iframe的全局上下文是独立的,它的prompt是浏览器原生实现,没有被目标网站的拦截逻辑修改。替换后,调用prompt()时实际执行的是iframe里的原生函数,自然就能绕过拦截。

其他代码说明

剩下的代码主要是功能逻辑(获取React组件实例、修改游戏内Blook数据)和版本校验逻辑(通过读取图片像素中的文本判断是否需要更新或确认),和prompt拦截绕过无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:46:12