在同一网页浏览中的Chrome应用中打开网页浏览链接

时间:2018-03-16 14:35:18

标签: webview google-chrome-app

我正在尝试创建一个镀铬自助服务终端应用,它将打开一个包含网页视图中链接的网页,然后在同一网页视图中加载链接。但是,我正在使用的网页上的链接是target="_blank",我收到错误<webview>: A new window was blocked,我们点击它们。我找到了这个here的解决方案,并尝试实现这样的建议:

chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create(
'window.html',
{ 'width': 1000, 'height': 1000 },
function(win) {
  win.contentWindow.onload = function() {
    var webview = win.contentWindow.document.querySelector('#webview');
    webview.addEventListener('newwindow', function(e) {
    chrome.app.window.create(e.targetUrl,window.open()
    });
  };
  }
 );
});

但是,我希望链接不在浏览器中打开,而是在链接启动的同一webview中打开。

是否有某种方法可以捕获目标网址,删除其target="_blank"属性,然后在原始网页浏览中加载网址?

1 个答案:

答案 0 :(得分:0)

内容脚本中的事件侦听器将在触发newwindow事件时捕获URL。抓取网址后,将网址设置为网页浏览的来源非常简单。

var webview = document.querySelector('#webview');
webview.addEventListener('newwindow', function (e) {
    //prevent the link from attempting to open a new window        
    e.preventDefault(); 
    webview.src = e.targetUrl;
});

由于此脚本不会打开任何新窗口,因此不必在应用程序的后台脚本中专门运行。

相关问题