Kri*_*ann 3 javascript jquery greasemonkey
我试图用Grease Monkey和jQuery删除外部站点上的Alert框.
HTML:
<!DOCTYPE html>
<html>
<body>
<script>alert("Remove this Alert box with GreaseMonkey.");</script>
<p>Hello world</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
GreaseMonkey脚本(目前没有jQuery部分):
// ==UserScript==
// @name Remove Alert box
// @include http://www.example.com/alert_remove/
// ==/UserScript==
var node = document.getElementsByTagName('alert');
node.parentNode.removeChild(node);
if(window.alert) {
alert("ALERT DETECTED"); // No response.
}
Run Code Online (Sandbox Code Playgroud)
我不认为这可以使用jQuery解决,因为jQuery代码仅在页面加载并且警报可见时触发($(document).ready).
我可以从DOM中删除alert元素吗?
我是否可以发送按键(13 = Enter)来处理警报?
谢谢.
在加载页面之前Greasemonkey不会运行,因此使用Greasemonkey是不可能的.如果您确实如此,可以使用与此Upside-Down-Ternet技巧中使用的方法类似的方法设置代理(例如squid).
如果您可以在其他代码调用之前运行自己的JavaScript alert,那么您可能希望执行以下操作:
window.backupAlert = window.alert;
window.alert = function () {return true};
Run Code Online (Sandbox Code Playgroud)
(测试工作)
然后,您可以在自己的脚本中使用该backupAlert函数alert,但是其他假设alert仍然存在的脚本将不会显示弹出窗口.
这样做的原因是alert是window对象内部的一个函数 ; 它不是文档中的标记或DOM对象.
不,你不能用JavaScript发送按键.这是全球真实的; 您可以触发处理按键事件的功能,但不能发送操作系统点击或按键事件.
| 归档时间: |
|
| 查看次数: |
5779 次 |
| 最近记录: |