浏览器中具有target ='_ blank'的GeckoFX超链接

时间:2018-11-08 14:25:21

标签: c# window geckofx

我需要geckowebbrowser1中具有target ='_ blank'的超链接才能在geckowebbrowser2中打开,而不是在新窗口中打开。

        private void geckowebbrowser1_CreateWindow(object sender, GeckoCreateWindowEventArgs e)
    {
        geckowebbrowser2.Navigate(e.Uri);

    }

但是无论如何都会创建一个新窗口:(

1 个答案:

答案 0 :(得分:1)

查看源代码,可以通过将Cancel设置为false来避免创建新窗口,如下所示:

private void geckowebbrowser1_CreateWindow(object sender, GeckoCreateWindowEventArgs e)
{
    e.Cancel = true;
    geckowebbrowser2.Navigate(e.Uri);
}

如果您感兴趣的话,下面是源代码中用于创建新窗口并调用CreateWindow事件处理程序的部分:

GeckoWebBrowser browser = parent as GeckoWebBrowser;
if (browser != null)
{
    var e = new GeckoCreateWindowEventArgs(flags);
    browser.OnCreateWindow(e);

    if (e.Cancel)
    {
        cancel = true;
        return null; // When you set cancel to true on your end, the below code for creating a new window won't run
    }

    if (e.WebBrowser != null)
    {
        // set flags
        ((nsIWebBrowserChrome) e.WebBrowser).SetChromeFlagsAttribute(chromeFlags);
        return e.WebBrowser;
    }

    nsIXULWindow xulChild = AppShellService.CreateTopLevelWindow(null, null, chromeFlags, e.InitialWidth, e.InitialHeight);
    return Xpcom.QueryInterface<nsIWebBrowserChrome>(xulChild);
}

return null;
相关问题