在我的Chrome应用中,我使用webview嵌入外部网页,许多Chrome应用也是如此 . 此嵌入式网页偶尔会包含指向其内容中外部URL的链接,这些链接不在我的控制之内 . 我想配置应用程序,以便在从webview中单击时在Chrome浏览器中加载URL . webview中显示的内容将目标属性设置为“_blank”的URL格式化,这通常会在新窗口中打开链接 . 我能够在webview中监听新窗口事件,但是我在解析要在浏览器中打开的URL时遇到问题 .

使用以下代码,单击webview中的URL会生成新的浏览器选项卡,但URL为空(大约:空白) . 基于此,似乎下面的URL解析代码无法正常工作 . 我将e.targetUrl变量记录到控制台,它在传递给window open命令之前确认了“about:blank”的值 . 如何从webview内容中捕获被点击的URL,以便可以在外部浏览器中打开?

提前致谢!

function onWindowLoaded(popup) {
return function (win) {
    // On window loaded event
    win.contentWindow.onload = function () {
        // Get webview
        var webview = win.contentWindow.document.getElementById('webview');

        // Override default user agent if provided
        if (appConfig.userAgent) {
            webview.setUserAgentOverride(appConfig.userAgent);
        }

        // Sign up for 'permissionrequest' event
        webview.addEventListener('permissionrequest', function (e) {
            // Allow all permission requests
            e.request.allow();
        });

        // Sign up for 'newwindow' event
        // Emitted when a target='_blank' link is clicked within the 
           webview
        webview.addEventListener('newwindow', function (e) {
            // Parse target window URL to extract hostname
            var parsedUrl = document.createElement('a');
            parsedUrl.href = e.targetUrl;
            // Open the link in a new browser tab/window
            win.contentWindow.open(e.targetUrl);
        });
    };
};

}