禁用 JavaScript 警报 GeckoFX C#
Disable JavaScript Alerts GeckoFX C#
我试图在 GeckoFX-33 + xulrunner 33 (winforms c#) 中禁用 JavaScript 警报,但我找不到解决方案。我检查了示例代码和源代码,但我就是找不到阻止警报的东西。我也在 about:config
中搜索过,但没有成功。
最后有人知道我在哪里可以找到参考资料吗?
在以前的版本中,您可以这样做
webBrowser.JavascriptError += (sender, error) => {
// do something
}
但是根据 issue 7 on geckofx 33,需要做一些工作来支持新的调试界面:
the geckofx service jsdIDebuggerService was removed from firefox 33. the JavascriptError event implementation used this service. So the JavascriptError event handler needs to be reimplemented using firefox new debugging interface.
geckoWebBrowser1.JavascriptError += (sender, error) =>
{
GeckoWebBrowser browser = geckoWebBrowser1;
string text = "window.alert = function(){};";
using (AutoJSContext context = new AutoJSContext(browser.Window.JSContext))
{
string result;
//toolStripLabel1.Text = "was is loaded?";
context.EvaluateScript(text, (nsISupports)browser.Window.DomWindow, out result);
}
};
这是 Gecko 29 的最终代码。
我试图在 GeckoFX-33 + xulrunner 33 (winforms c#) 中禁用 JavaScript 警报,但我找不到解决方案。我检查了示例代码和源代码,但我就是找不到阻止警报的东西。我也在 about:config
中搜索过,但没有成功。
最后有人知道我在哪里可以找到参考资料吗?
在以前的版本中,您可以这样做
webBrowser.JavascriptError += (sender, error) => {
// do something
}
但是根据 issue 7 on geckofx 33,需要做一些工作来支持新的调试界面:
the geckofx service jsdIDebuggerService was removed from firefox 33. the JavascriptError event implementation used this service. So the JavascriptError event handler needs to be reimplemented using firefox new debugging interface.
geckoWebBrowser1.JavascriptError += (sender, error) =>
{
GeckoWebBrowser browser = geckoWebBrowser1;
string text = "window.alert = function(){};";
using (AutoJSContext context = new AutoJSContext(browser.Window.JSContext))
{
string result;
//toolStripLabel1.Text = "was is loaded?";
context.EvaluateScript(text, (nsISupports)browser.Window.DomWindow, out result);
}
};
这是 Gecko 29 的最终代码。