禁用GeckoFX确认消息

3
我正在使用Gecko Web浏览器版本21.0.1和.NET Framework 4.0在我的Windows应用程序中。当我访问某些网页时,会弹出确认消息:
“此网页正在被重定向到新位置。您是否想要重新发送您已输入的表单数据到新位置?”
如何禁用这种消息?到目前为止,我尝试了以下设置,但它们没有帮助:
GeckoPreferences.User["security.warn_viewing_mixed"] = false;
GeckoPreferences.User["plugin.state.flash"] = 0;
GeckoPreferences.User["browser.cache.disk.enable"] = false;
GeckoPreferences.User["browser.cache.memory.enable"] = false;
1个回答

2
你可以尝试提供自己的 nsIPromptService2 / nsIPrompt 实现。 在程序启动之前尽早运行(但在 XPCom.Initalize 之后)。
PromptFactory.PromptServiceCreator = () => new FilteredPromptService();

FilteredPromptService 大概定义如下:

internal class FilteredPromptService : nsIPromptService2, nsIPrompt
{
    private static PromptService _promptService = new PromptService();

    public void Alert(nsIDOMWindow aParent, string aDialogTitle, string aText)
    {
        if(/*want default behaviour */)
        {
         _promptService.Alert(aDialogTitle, aText);
        }
        // Else do nothing 
    }

    // TODO: implement other methods in similar fashion. (returning appropriate return values)
}

您还需要确保未启用错误页面:

GeckoPreferences.User["browser.xul.error_pages.enabled"] = false;

嗨Tom - 这可能是一个很愚蠢的问题,请告诉我-如果我想要这样做,即使只想干扰其中一个方法,我需要包括接口的每个方法吗?也就是说,即使我不知道它们的作用,我是否必须手动键入所有方法到FilteredPromptService中?是否有自动方式可以说“好的,只需将它们添加为原始接口中的任何位置?”干杯! - Bartosz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接