【问题标题】:How to write a greasemonkey script to remove a confim dialog?如何编写一个greasemonkey脚本来删除一个确认对话框?
【发布时间】:2010-07-27 02:17:19
【问题描述】:

我想写一个非常简单的greasemonkey 脚本,因为我讨厌“你确定吗?”我经常使用的网站上的 javascript 确认。我只是将它用于个人用途,不会发布它或任何东西。经过一番谷歌搜索后,我发现http://wiki.greasespot.net/UnsafeWindow 解释了我想做的事情。

我要的页面源代码是这样的

var message = "Are you sure?";
function confirmIt(message) {
    var result = confirm(message);
    return result;
}

我想用 return true 替换 confirmIt(message);

所以我做了一个脚本

var oldFunction = unsafeWindow.confirmIt(message);
    unsafeWindow.confirmIt(message) = function() {
    return true;
};

我收到错误消息“未定义消息。”

我不确定我是否正确(我认为不是),但我希望有更多 Greasemonkey 经验的人提供一些关于如何替换页面上的 Javascript 函数的指导。

【问题讨论】:

  • 如果您发布网页,我可能会告诉您。您看到的弹出窗口很可能只是一个覆盖 div - 每次使用 greasymonkey 加载页面时隐藏 div,这样您的工作就更轻松了

标签: greasemonkey


【解决方案1】:

您需要将 unsafeWindow.confirmIt 视为除了函数(它是)之外的变量。因此,您在代码中尝试的方法是:

var oldFunction = unsafeWindow.confirmIt;

unsafeWindow.confirmIt = function(message) {
    return true;
};

试试看。

【讨论】:

  • 成功了!谢谢你。不过很好奇,我不关心在我的函数中访问变量消息,但如果我确实想要,如果我似乎无法访问参数,我该怎么做?
  • 您确实有权访问这些参数。您的函数被定义为采用它称为“消息”的参数。你可以说 unsafeWindow.confirmIt = function(message) {alert(message);返回真;};它会完全按照您的预期工作。
猜你喜欢
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 2017-12-20
  • 2017-09-07
相关资源
最近更新 更多