|
@@ -111,141 +111,12 @@ function load() {
|
|
|
title: dataTempCopy.name,
|
|
title: dataTempCopy.name,
|
|
|
message: '远程方案已载入并运行!'
|
|
message: '远程方案已载入并运行!'
|
|
|
})
|
|
})
|
|
|
- // console.log(unescape(tabData.data))
|
|
|
|
|
- function decodeOwo (value) {
|
|
|
|
|
- value = owoReplaceAll(value, "'", 'owovar1')
|
|
|
|
|
- value = owoReplaceAll(value, "`", 'owovar2')
|
|
|
|
|
- value = owoReplaceAll(value, '"', 'owovar3')
|
|
|
|
|
- value = owoReplaceAll(value, '$', 'owovar4')
|
|
|
|
|
- return value
|
|
|
|
|
- }
|
|
|
|
|
- if (dataTempCopy.data) {
|
|
|
|
|
- let execTwmp = `
|
|
|
|
|
- function owoReplaceAll(str, s1, s2) {
|
|
|
|
|
- while (str.indexOf(s1) >= 0) {
|
|
|
|
|
- str = str.replace(s1, s2)
|
|
|
|
|
- }
|
|
|
|
|
- return str
|
|
|
|
|
- }
|
|
|
|
|
- function clearOwo (value) {
|
|
|
|
|
- value = owoReplaceAll(value, 'owovar1', "'")
|
|
|
|
|
- value = owoReplaceAll(value, 'owovar2', "\`")
|
|
|
|
|
- value = owoReplaceAll(value, 'owovar3', '"')
|
|
|
|
|
- value = owoReplaceAll(value, 'owovar4', '$')
|
|
|
|
|
- return value
|
|
|
|
|
- }
|
|
|
|
|
- var script = document.createElement("script");
|
|
|
|
|
- script.type = "text/javascript";
|
|
|
|
|
- script.charset = "UTF-8";
|
|
|
|
|
- script.innerHTML = clearOwo(\`${decodeOwo(dataTempCopy.data)}\`);
|
|
|
|
|
- document.body.appendChild(script)
|
|
|
|
|
- `
|
|
|
|
|
- chrome.tabs.executeScript(tabData.tabInfo.id, {code: execTwmp})
|
|
|
|
|
- }
|
|
|
|
|
- if (dataTempCopy.style || dataTempCopy.script) {
|
|
|
|
|
- dataTempCopy.style = dataTempCopy.style || '[]'
|
|
|
|
|
- dataTempCopy.script = dataTempCopy.script || '[]'
|
|
|
|
|
- let temp = `
|
|
|
|
|
- function loadScript(url, callback) {
|
|
|
|
|
- var script = document.createElement("script")
|
|
|
|
|
- script.type = "text/javascript";
|
|
|
|
|
- if (script.readyState) { //IE
|
|
|
|
|
- script.onreadystatechange = function () {
|
|
|
|
|
- if (script.readyState == "loaded" || script.readyState == "complete") {
|
|
|
|
|
- script.onreadystatechange = null;
|
|
|
|
|
- if (callback) callback();
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
- } else { //Others
|
|
|
|
|
- script.onload = function () {
|
|
|
|
|
- if (callback) callback();
|
|
|
|
|
- };
|
|
|
|
|
- }
|
|
|
|
|
- script.src = url;
|
|
|
|
|
- var head = document.head || document.getElementsByTagName('head')[0];
|
|
|
|
|
- head.appendChild(script);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- function loadCSS (url) {
|
|
|
|
|
- var link = document.createElement("link");
|
|
|
|
|
- link.rel = "stylesheet";
|
|
|
|
|
- link.type = "text/css";
|
|
|
|
|
-
|
|
|
|
|
- link.href = url;
|
|
|
|
|
-
|
|
|
|
|
- document.getElementsByTagName("head")[0].appendChild(link);
|
|
|
|
|
- }
|
|
|
|
|
- ${dataTempCopy.style}.forEach(element => {
|
|
|
|
|
- loadCSS(element)
|
|
|
|
|
- });
|
|
|
|
|
- ${dataTempCopy.script}.forEach(element => {
|
|
|
|
|
- loadScript(element)
|
|
|
|
|
- });
|
|
|
|
|
- `
|
|
|
|
|
chrome.scripting.executeScript({
|
|
chrome.scripting.executeScript({
|
|
|
target: { tabId: tabData.tabInfo.id },
|
|
target: { tabId: tabData.tabInfo.id },
|
|
|
func: () => {
|
|
func: () => {
|
|
|
-
|
|
|
|
|
- // 创建div元素
|
|
|
|
|
- const newDiv = document.createElement('div');
|
|
|
|
|
-
|
|
|
|
|
- // 设置div的内容和属性
|
|
|
|
|
-
|
|
|
|
|
- newDiv.id = 'assistBox';
|
|
|
|
|
- newDiv.className = 'assist-box';
|
|
|
|
|
- newDiv.innerHTML = `
|
|
|
|
|
- <img style="position: absolute;top: -6px;left: -13px;" onclick="window.assistBox.style.right = (window.assistBox.style.right == '-301px' ? '0' : '-301px')" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAA8CAYAAACw00AzAAABtklEQVRIie3WvU7bUBTA8b9vrKSGhKZqyAALWToQVYWhElM3pDbiG8aqcx+Al+jAAzCwdar6QVDLK3SgMDAa0g0JlGTDBmOw0bUasOHGyV2hZ7LO/d2jc+61ZPPQw5Dz2Qd/u405CbwD3piZzIDZRb0APgELnYTn+6jwEvAFyMSTGSGO7uIa8K1bTyL2/Bz4mXZHcbzRGbgXHgHm02Acv+8F43hKB4/qYEsHX+ngvuI/VuIgCMhms+Ryueg5FUvYbDZxXZdCoaDccIPzg4Mcn5ywWd+KXmrVhts2wpBnxSKNRoOv339gmib5fD6xITFgGIaUSsPYts1mvR7l5AwppxFSLpfZ+bPLr+1tBiwLwzDUWAiB4zg8HRqiMlbhwvdv1kwVNAzB8vIi1fFxWq3W/TYkdN0zzs895mZneFmtRlDOcQ9f+j5BGFCrvWVi4hXNf7DTb6KNU8ehUhnDemLRbrejI4vDRGVZRRgCz/OUMFFZLnYuQAWVR5cWjwYnvh+98IVO5WMdvKeDP+tgG/jdL5bxQQcfAh/7xTLWgdV+sYw1YBrYv5Mv9frfWAHmgNeA3w09wgCuAWMViFVtipj2AAAAAElFTkSuQmCC">
|
|
|
|
|
- `;
|
|
|
|
|
- newDiv.style.cssText = `
|
|
|
|
|
- position: fixed;
|
|
|
|
|
- right: 0;
|
|
|
|
|
- bottom: 20px;
|
|
|
|
|
- border: 1px solid #ccc;
|
|
|
|
|
- background-color: rgba(255, 255,255, 0.8);
|
|
|
|
|
- z-index: 99;
|
|
|
|
|
- transition: right 1s ease;
|
|
|
|
|
- `;
|
|
|
|
|
-
|
|
|
|
|
- // 将div插入到body的末尾
|
|
|
|
|
- document.body.appendChild(newDiv);
|
|
|
|
|
-
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- // 创建 iframe 并插入页面
|
|
|
|
|
- const iframe = document.createElement('iframe');
|
|
|
|
|
- iframe.src = 'https://demos.run/assist/index.html'; // 注意:必须同源或对方允许跨源
|
|
|
|
|
- iframe.style.cssText = `width: 300px;height: 400px;border: none;`
|
|
|
|
|
- window.assistBox.appendChild(iframe);
|
|
|
|
|
-
|
|
|
|
|
- // 向 iframe 发送消息
|
|
|
|
|
- iframe.onload = () => {
|
|
|
|
|
- iframe.contentWindow.postMessage({
|
|
|
|
|
- type: "onload",
|
|
|
|
|
- value: location.href
|
|
|
|
|
- }, '*');
|
|
|
|
|
- };
|
|
|
|
|
- }, 0);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- // 接收子页面发来的消息
|
|
|
|
|
- window.addEventListener('message', (event) => {
|
|
|
|
|
- console.log('来自子页面的消息:', event.data);
|
|
|
|
|
- switch (event.data.type) {
|
|
|
|
|
- case "click":
|
|
|
|
|
- document.querySelector(event.data.value).click()
|
|
|
|
|
- break;
|
|
|
|
|
- case "fetch":
|
|
|
|
|
-
|
|
|
|
|
- fetch(event.data.value.url, event.data.value)
|
|
|
|
|
- .then((response) => response.text())
|
|
|
|
|
- .then((result) => console.log(result))
|
|
|
|
|
- .catch((error) => console.error(error));
|
|
|
|
|
- default:
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ assistLoad()
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
- }
|
|
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|