webview阻止链接和弹窗在新页面打开,控制在本窗口跳转

netfox 1月前 324

假期后的开张贴

import win.ui;
/*DSG{{*/
var winform = win.form(text="Edge链接拦截";right=759;bottom=469)
winform.add(
    wb={cls="custom";left=10;top=10;right=749;bottom=459;edge=1;transparent=1;z=1}
)
/*}}*/

import web.view;

wb = web.view(winform.wb);
wb.external = {
    postMessage = function(msg){
        var data = web.json.parse(msg);       
        if(data.type == 'linkClicked'){
            wb.location = data.url;
        }
    }
}
wb.preloadScript(`document.addEventListener('click', function(e) {
        var target = e.target;
        while(target && target.tagName !== 'A') {
            target = target.parentElement;
        }
        if(target && target.tagName === 'A') {
            e.preventDefault();
            aardio.postMessage(JSON.stringify({
                type: 'linkClicked',
                url: target.href
            }));
        }
    }, true);    
    window.open = function(url){window.location.href = url;}
`)

wb.go("https://www.taobao.com");

winform.show();
win.loopMessage();


最新回复 (4)
  • 小光芒 1月前
    0 2
    赞一个
  • 光庆 1月前
    0 3
    赞两个
  • 阿甘 1月前
    0 4
    赞三个
  • breezee 1月前
    0 5
    赞亖个
返回