如何使用用户脚本覆盖警报功能?

2024-01-26

现场有这样的代码(其站点位于 LAN 上)

<script language="JavaScript" type="text/javascript">         
    alert("ble");
</script>

我尝试使用 GM 禁用该警报。我正在尝试这样做

unsafeWindow.alert=function() {};

但我看到警报并收到此错误

Error: uncaught exception: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: file:///C:/Documents%20and%20Settings/arokitnicki/Dane%20aplikacji/Mozilla/Firefox/Profiles/sm4bsods.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js :: anonymous :: line 377"  data: no]

如何禁用该警报?

附:这是不是 JavaScript问题,但是一个油猴问题。

EDIT:

它的公司网站,所以我无法粘贴真实的代码

<head>
    <script>    
        dojo.require("dojo.back");
        dojo.back.init(); 
    </script>
</head>
<body onload="someMethod()">
    <iframe></iframe>
    <script>         
        alert("bla");
    </script>
</body>

header 中还有一些脚本和 CSS 声明。


Update: For modern versions of Tampermonkey, Violentmonkey, Greasemonkey (but strongly recommended to avoid GM 4+):
You can intercept alert() in most cases by using @run-at document-start. For example, load this script and then visit the test page http://output.jsbin.com/ajeqe4/6:

// ==UserScript==
// @name    _Overwrite Alert
// @match   *://output.jsbin.com/*
// @grant   none
// @run-at  document-start
// ==/UserScript==

var alrtScope;
if (typeof unsafeWindow === "undefined") {
    alrtScope = window;
} else {
    alrtScope = unsafeWindow;
}

alrtScope.alert = function (str) {
    console.log ("Greasemonkey intercepted alert: ", str);
};

请注意,如果您是运行篡改猴, 你可以通过切换到更有效地阻止警报Inject Mode: Instant:
篡改猴设置 => 配置模式: Advanced => 实验性的 => 注入模式: Instant.


如果您的脚本需要 GM_ 函数,它必须设置@grant除了没有之外。在这种情况下使用exportFunction()像这样:

// ==UserScript==
// @name            _Overwrite Alert
// @match           *://output.jsbin.com/*
// @grant           GM_addStyle
// @run-at          document-start
// ==/UserScript==

function myAlert (str) {
    console.log ("Greasemonkey intercepted alert: ", str);
}
unsafeWindow.alert   = exportFunction (myAlert, unsafeWindow);


2011 年 8 月之前的 Greasemonkey 的旧答案:

unsafeWindow.alert=function() {};在某些情况下工作正常。

但是,如果这确实是页面上的代码,那么您将无法使用 Greasemonkey 停止该警报。

这是因为该警报将在页面加载期间和之前触发DOMContentLoaded事件——即 Greasemonkey 被触发的时间。


加载这个 GM 脚本:

// ==UserScript==
// @name            Overwrite Alert
// @description     Overwrites alert()
// @include         http://jsbin.com/*
// ==/UserScript==

unsafeWindow.alert=function() {};


然后访问:http://jsbin.com/ajeqe4/6 http://jsbin.com/ajeqe4/6 .

检查代码(http://jsbin.com/ajeqe4/6/edit http://jsbin.com/ajeqe4/6/edit),您将看到 3 个警报。 Greasemonkey 只能阻止正在触发的警报load(通常)。

其他因素可能会阻止 GM 停止警报的能力...页面加载速度太快或可能关闭。


将该页面的源代码粘贴到pastebin.com,尽可能不进行编辑。也许您还可以做其他事情。也许通过 adblock 阻止脚本?

否则,您将不得不编写扩展/附加组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用用户脚本覆盖警报功能? 的相关文章

  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • 为什么 JavaScript base-36 转换看起来不明确

    我目前正在编写一段使用 Base 36 编码的 JavaScript 我遇到了这个问题 parseInt welcomeback 36 toString 36 看来要回归了 welcomebacg 我在 Chrome 开发者控制台和 Nod
  • TypeError: props.render 不是一个函数(React hook 形式)

    我将方法作为我用react hook form制作的形式的道具传递 当从react hook form添加控制器时 它给了我 TypeError props render不是一个函数 我在网上找不到任何解决方案 因此感谢任何帮助 impor
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 使用 jQuery/JS 打开时使
    标签的内容具有动画效果

    我只想要 HTML5 的内容details标记为 滑行 动画打开 而不是仅仅弹出打开 立即出现 这可以用 jQuery Javascript 实现吗 Fiddle http jsfiddle net 9h4Hq HTML
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 通过 CDN 使用 Dojo 时如何加载自定义 AMD 模块?

    我正在使用 google 的 CDN 并尝试使用他们的加载程序加载我自己的 AMD 模块 我知道我做错了什么 但我被困住了 有任何想法吗
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 有没有办法阻止 prettier / prettier-now 将函数参数分解为新行

    当使用 prettier prettier now 在保存时进行格式化时 当一个函数包装另一个函数时 它会中断到一个新行 我想知道是否有办法阻止这种行为 例如 期望的输出 app get campgrounds id catchAsync
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中

随机推荐

  • 我可以将 FlurlClient 与 Asp.Net Core TestServer 一起使用吗?

    我们在一些项目中使用 FlurlClient 并熟悉其流畅的界面 我们现在希望使用 TestServer 在 ASP NET Core 集成测试中使用它 示例来自http asp net hacker rocks 2017 09 27 te
  • 确定测试矩阵结果的有效方法

    相关问题 矩阵组合逻辑 https stackoverflow com questions 13531987 matrix combination logic 笛卡尔积是最好的方法吗 https stackoverflow com ques
  • Julia - 读取大文件的并行性

    在 Julia v1 1 中 假设我有一个非常大的文本文件 30GB 并且我想要并行 多线程 读取每一行 我该怎么办 此代码是在检查后尝试执行此操作Julia 有关多线程的文档 https docs julialang org en v1
  • 是否可以重用backgroundworker对象?

    我有一个 刷新 按钮 每次单击它时我都希望我的后台工作对象能够工作 i use if main news back worker IsBusy true Start the asynchronous operation main news
  • 在 Windows Phone 8 上创建构建

    我想为我的 Windows Phone 8 应用程序构建 如 APK 以进行测试 我该怎么办 当您在 VS 2012 中运行 Windows Phone 8 应用程序时 会在应用程序的 Bin 文件夹中创建一个 XAP 文件 它类似于And
  • 如何使用Vim快速查看Mercurial或Git的变化

    当我在 Vim 中编辑文件时 我想快速突出显示自上次提交以来所做的任何更改 同时仍然能够编辑该文件 有什么可以接近这样做吗 编辑 2020 01 23 快速搜索 仅供参考 发现还有另一个插件似乎与 VCS 无关 https github c
  • 为什么在此 AnyEvent::Handle 示例中没有调用 on_eof?

    这是我的简单服务器 当我运行它并 telnet 到它 端口 5222 并让 telnet 退出其连接时 为什么我的 on eof 函数没有被调用 IE 为什么字符串不是 CATASTROPHE 打印 usr bin perl use v5
  • 如果存在具有相同名称的方法的 Mixin,如何调用超类方法

    重复方法行为 The 代码 这里作为要点 https dartpad dartlang org 10e4a4fe0cc01c7eb5ec926ff9a4cebb将打印e 如果我删除覆盖 即删除output from Baz 它将打印w fr
  • Java PBEWithMD5AndDES

    我正在使用基于密码的加密 我最初的想法是使用 AES 来加密包含密码的文件 结果基于密码的加密不支持 AES 它使用 DES AFAIK des 并不安全 PBEWithMD5AndDES 是否足够安全 足以推送我的数据 还是我应该寻找其他
  • 检查共享目录权限 - C#

    我想编写一段代码来检查共享目录权限 我检查了多个解决方案 但在尝试获取本地目录权限时效果很好 但当我为共享目录制作测试用例时它会失败 我在这个问题中尝试举例 SOF 检查网络中的目录和文件写入权限 https stackoverflow c
  • 寻找最短路径时,广度优先搜索如何工作?

    我做了一些研究 我似乎遗漏了这个算法的一小部分 我了解广度优先搜索的工作原理 但我不明白它到底如何让我到达特定路径 而不是仅仅告诉我每个单独的节点可以去哪里 我想解释我的困惑的最简单方法是提供一个例子 举例来说 假设我有一个这样的图表 我的
  • 在 Heroku 上,rake db:migrate 失败并显示“数据库配置未指定适配器”

    我已经按照导轨教程 http ruby railstutorial org chapters a demo app version 3 2 sec 3adeploying the demo app直到链接点 这是外壳输出 jrhorn424
  • 如何每三个字符插入一个空格,直到一个句点字符?

    我一直在尝试将输入格式设置为每三个字符有一个空格 直到句点字符 例如 999999999 gt 999 999 999 33333 25 gt 33 333 25 222 32 gt 222 32 4444 gt 4444 这是我到目前为止
  • 在 Beaglebone 中使用 openCV 编译 C++ 代码

    我用 C 编写了以下代码 使用 openCV 在 Beaglebone 中运行 include
  • Javascript 模块中的变量在其外部可见吗?

    首先 我来自 NET 世界 那里有静态类 C 在 VB 中也称为模块 和实例类 您可以实例化它们 这个问题是关于 Javascript 的 我试图重新创建我已经知道的模式并创建一个模块 静态类 这是代码 var MyModule varia
  • 重用需要“resolve”参数的“ui-route”控制器

    我希望能够重复使用我的ui router 有线控制器 他们目前从以下位置接收参数ui router resolve渲染他们的模板 我可以重复使用这些控制器吗 ui router 例如 我这样做ui router controller Det
  • Python3中的mimetools.choose_boundary函数在哪里?

    我目前想在Python3中使用以下代码 但发现该函数mimetools choose boundary要弃用 如何更改代码并使其正常工作 import re from urllib request import urlopen Reques
  • Guice JPA - “此连接已关闭。”错误

    在数据库断开空闲连接或数据库关闭并备份后 我在我的网络应用程序中收到以下错误 javax persistence PersistenceException org hibernate exception JDBCConnectionExce
  • async.mapLimit 与 Promise

    我正在尝试使用 async 模块 v3 尤其是 async mapLimit 方法来提交有限数量的并行异步请求 这与以下 简化的 示例代码中的回调配合使用效果很好 async require async async mapLimit 1 2
  • 如何使用用户脚本覆盖警报功能?

    现场有这样的代码 其站点位于 LAN 上 我尝试使用 GM 禁用该警报 我正在尝试这样做 unsafeWindow alert function 但我看到警报并收到此错误 Error uncaught exception Exception