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(click); // 检查点击的元素是否有类名为 'btn' if (event.target.classList.contains("btn")) { // 获取按钮上显示的文本内容 var buttonText = event.target.innerText; if (buttonText == "进入游戏") { var btn = { x: "成功获取到btn", y: buttonText }; window.chrome.webview.postMessage(btn); // 阻止默认的链接跳转行为 event.preventDefault(); var newUrl = this.href; // 获取点击链接的跳转地址 // 在当前窗口打开目标地址 // window.location.href = "http://www.df6831.com/game/"; window.location.href = newUrl; window.chrome.webview.postMessage({url:newUrl}}); } } }); '''; /// 模拟点击 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 onloadScale(int scale){ assert(scale >= 1 && scale <= 100, 'zoom 1 到 100'); return ''' window.onload = function () { // 修改页面缩放比例为0.5(50%) document.body.style.transformOrigin = 'top left'; document.body.style.transform = 'scale(${scale / 100})'; }; '''; } /// 修改缩放 static String scale(int scale){ assert(scale >= 1 && scale <= 100, 'zoom 1 到 100'); return ''' // document.body.style.zoom = "$scale%"; document.body.style.transformOrigin = 'top left'; document.body.style.transform = 'scale(${scale / 100})'; '''; } static String message = 'window.chrome.webview.postMessage({x:3333}});'; }