class WindowsJs { /// 点击监听 static String clickEventJs = ''' document.addEventListener("click", function (event) { var x = event.clientX; var y = event.clientY; var click = { "x": x, "y": y }; var value = { click: click }; // 发送消息 window.chrome.webview.postMessage(value); window.chrome.webview.postMessage({"text":event.target.textContent,"end":event.target.textContent === "进入游戏"}); // 检查点击的元素是否有类名为 'btn' if (event.target.textContent === "进入游戏") { // 获取按钮上显示的文本内容 window.chrome.webview.postMessage({ "成功获取到btn": 1 }); // window.chrome.webview.postMessage({ "btn": event.target.textContent }); // 阻止默认的链接跳转行为 event.preventDefault(); var oldUrl = window.location.href; var classUrl = event.target.href; var str = oldUrl; var startIndex = str.indexOf('www.'); var endIndex = str.indexOf('/', startIndex); var url = str.substring(startIndex, endIndex); var newUrl = "https://" + url + "/game/"; window.chrome.webview.postMessage({"元素地址": classUrl ,"旧地址":window.location.href ,"截取":url,"新地址": newUrl}); // 在当前窗口打开目标地址 // window.location.href = "http://www.df6831.com/game/"; window.location.href = newUrl; } }); '''; /// 滚动监听 static String scrollEventJs = ''' window.onscroll = function() { // 获取垂直滚动位置 var scrollTop = window.scrollY; window.chrome.webview.postMessage({"scroll": 1 ,"y": scrollTop }); }; '''; /// 滚动到 static String scrollTo(int value){ return ''' window.scrollTo({ top: $value, behavior: 'smooth' // 可选,设置滚动行为为平滑滚动 }); '''; } /// 模拟点击 static String clickJs(double x, double y) { return 'document.elementFromPoint($x, $y).click();'; } /// 输入 static String inputJs(int value) { return ''' var inputEvent = new Event('input', { bubbles: true, cancelable: true, }); var inputElement = document.querySelector(".bet-money"); inputElement.value = "$value"; inputElement.dispatchEvent(inputEvent); '''; } /// 监听加载,在加载完成后缩放 static String onloadZoom(int zoom){ assert(zoom >= 1 && zoom <= 100, 'zoom 1 到 100'); return ''' window.onload = function () { var currentUrl = window.location.href; if (currentUrl.endsWith('game/')) { ${WindowsJs.zoom(zoom)} } }; '''; } /// 修改缩放 static String zoom(int zoom){ assert(zoom >= 1 && zoom <= 100, 'zoom 1 到 100'); return ''' document.body.style.zoom = "$zoom%"; '''; } static String message = 'window.chrome.webview.postMessage({x:3333});'; }