我需要在一个窗口确认框中单击“确定”,该确认框可以预见地出现在我的用户脚本执行的某个点。通常当我需要这样做时,我只是在执行时查看源代码,无论窗口确认:
例如
...onclick="DoWathever()">
然后我会调用本机 DoWathever() 并绕过确认窗口。问题是,在调用window.confirm的毯子下的函数中,所以我无法使用这种简单的方式绕过。
话虽如此,我已经在 stackoverflow 和 google 上查看了可能的解决方案,并发现了一个:在警报上单击“确定”或通过 jquery/javascript 确认对话框?
这基本上建议我通过创建一个“假”window.confirm来覆盖默认确认,使用它:
window.alert = function() {
console.log.apply(console, arguments);
return true;
};
现在它变得很奇怪,我有两种使用这个解决方案的经验:
1)如果我只是在控制台手动声明它(我通常在将它实际包含在脚本中之前进行测试)它将完美地工作并确认对话框。
2)如果我将它包含在脚本中(在所有其他事情之前,请注意)它不会起作用,并且javascript会像往常一样通过确认窗口询问我。
所以...是的,任何想法为什么它在 2) 或任何可能的替代解决方案中不起作用?
谢谢。