【发布时间】:2015-12-19 14:32:00
【问题描述】:
我正在尝试阻止某些向用户显示警报的 javascript 函数。
我目前正在使用此代码,但它不起作用:
private void InjectAlertBlocker()
{
string alertBlocker = @"window.alert = function () { };
window.print = function () { };
window.open = function () { };
window.onunload = function () { };
window.prompt = function () { };
window.confirm = function() { };
window.onbeforeunload = function () { };";
wb.Document.InvokeScript("execScript", new Object[] { alertBlocker, "JavaScript" });
}
网络浏览器控件在后台运行,一些需要访问的网站会显示随机弹出给用户的警报。
我尝试过类似的代码,但无法让它们中的任何一个工作。
更新:
经过一番检查,这段代码似乎确实阻止了警报。但是,在我的特殊情况下,警报来自 iframe,这就是我的代码没有阻止它的原因。 w3schools 上的 javascript 警报示例就是一个很好的例子:http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_alert
如何覆盖 iframe 中的脚本?
更新 2:
我尝试将 javascript 代码(由 Buzinas 在他的回答中提供)注入到主页中,这将遍历所有 iframe 并覆盖它们的警报功能,但由于相同的来源,它大部分时间都会导致错误政策。
【问题讨论】:
标签: javascript c# iframe webbrowser-control .net-2.0