您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
laya bundle 文件注入代码 在使用前需要自己修改地址
// ==UserScript== // @name laya inject bundle // @namespace http://tampermonkey.net/ // @version 2024-01-15 // @description laya bundle 文件注入代码 在使用前需要自己修改地址 // @author cj // @match http://192.168.20.103:18090/?scene=9b931ecf-fde9-44dd-acf3-15f8dc807965 // @icon https://www.google.com/s2/favicons?sz=64&domain=csdn.net // @grant none // ==/UserScript== window.tempDefineProperty = Object.defineProperty window.collectionDatas = {} Object.defineProperty = function (target, propertyKey, descriptor){ if(descriptor && descriptor.value && typeof descriptor.value === 'string') { const key = descriptor.value window.collectionDatas[key] = target } return window.tempDefineProperty(target, propertyKey, descriptor) } window.myCodeSnippet = ` console.log("还没有设置代码片段") ` window.addEventListener('load', function() { document.addEventListener('keydown', function(event) { // 获取按下的键的键码 var keyCode = event.keyCode if(keyCode != 32) return try { eval(window.myCodeSnippet); } catch (error) { console.error('执行代码时出错:', error); } }); }); var indexScriptNode const indexSrc = "http://192.168.20.103:18090/js/index.js" const bundleSrc = "http://192.168.20.103:18090/js/bundle.js" // 创建一个 MutationObserver 实例,并指定回调函数 var observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { // 检查每个 mutation 的类型 if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { // 处理添加的节点 mutation.addedNodes.forEach(function (addedNode) { // 检查是否是 <script> 标签 if (addedNode.tagName === 'SCRIPT') { if(addedNode.src == indexSrc){ indexScriptNode = addedNode document.body.removeChild(addedNode) }else if(addedNode.src == bundleSrc){ document.body.removeChild(addedNode) } } }); } }); }); // 配置 MutationObserver 观察的内容 var observerConfig = { childList: true, // 观察子节点的变化 在这个元素执行前执行前 subtree: false // 观察所有后代节点的变化 }; // 开始观察 <body> 元素的变化 observer.observe(document.body, observerConfig); function insertAt(str, index, value) { return str.slice(0, index) + value + str.slice(index); } var xhr = new XMLHttpRequest(); xhr.open('GET', bundleSrc, true); xhr.responseType = 'blob'; xhr.onload = function () { if (xhr.status === 200) { var blob = xhr.response; var reader = new FileReader(); reader.onload = function () { var fileText = reader.result; // let temp = "" // for (let i = 0; i < 25; i++) { // temp += fileText[i] // } // console.log(temp) fileText = insertAt(fileText,25,headSrc) fileText = insertAt(fileText,fileText.length -42,endSrc) eval(fileText) observer.disconnect() setTimeout(() => { document.body.appendChild(indexScriptNode) }, 300); }; reader.readAsText(blob); } }; xhr.send(); window.gObjList = {} const headSrc = ` console.log("---------------overwrite Head--------------");\n ` const endSrc = ` console.log("---------------overwrite End--------------");\n `