您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2021/11/18 下午3:32:59
// ==UserScript== // @name 爱蒙编辑器(vue,一键打开) // @namespace Violentmonkey Scripts // @include http://localhost* // @include http://127.0.0.1* // @include http://0.0.0.0* // @include http://192.168.* // @include http://10.0.* // @include http://10.114.6.* // @include http://10.115.2.* // @exclude http://10.0.0.1/cgi-bin/* // @include http://172.16.* // @grant none // @version 0.7.0 // @author - // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js // @require https://cdn.jsdelivr.net/npm/[email protected]/jquery.hotkeys.min.js // @description 2021/11/18 下午3:32:59 // ==/UserScript== document.addEventListener('click', event => { if (event.ctrlKey) { event.preventDefault(); event.stopPropagation(); const c = element => { if (!element) return false if (element?.__vnode?.props.__v_inspector) { return element?.__vnode?.props.__v_inspector; } else if(element?.__vnode?.ctx.type.__file){ if(__vue_tracer__?.vnodeToPos){ return __vue_tracer__.vnodeToPos.get(element.__vnode.props).join(':') } } else if (element.getAttribute('data-v-inspector')) { return element.getAttribute('data-v-inspector') } else { return c(element.parentNode); } }; if (window.useNuxtApp) { const app = useNuxtApp(); const rootDir = app.vueApp._component.__file.replace(/node_modules.*/, ''); const src = c(event.srcElement); let finalSrc = rootDir + src console.log(finalSrc); if (rootDir && src) { fetch(`/__open-in-editor?file=${finalSrc}`).then(() => { highlight(event.srcElement); }); } return false } if (window.__vite_plugin_ssr) { const rootDir = (__VUE_DEVTOOLS_GLOBAL_HOOK__.apps[2]?.app || __VUE_DEVTOOLS_GLOBAL_HOOK__.apps[1]._context.app)._instance.subTree.type.__file.replace( /renderer\/.*/, '', ); const src = c(event.srcElement); if (rootDir && src) { fetch(`/__open-in-editor?file=${rootDir + src}`.replace('src/src','src')).then(() => { highlight(event.srcElement); }); } return false } if(window.__VUE_INSPECTOR__){ const rootDir = __VUE_INSPECTOR__._.type.__file.replace(/node_modules.*/, '') const src = c(event.srcElement); if (rootDir && src) { fetch(`/__open-in-editor?file=${rootDir + src}`).then(() => { highlight(event.srcElement); }); } return false } } }); document.addEventListener('keyup', event => { if (event.keyCode === 190 && event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') { if (window.useNuxtApp) { const app = useNuxtApp(); if (event.ctrlKey) { console.log(event.target); } else { fetch( `/__open-in-editor?file=${app._route.matched[app._route.matched.length - 1].components.default.__file }`, ); } return false; } if (window.__vite_plugin_ssr) { const baseSrc = (__VUE_DEVTOOLS_GLOBAL_HOOK__.apps[2]?.app || __VUE_DEVTOOLS_GLOBAL_HOOK__.apps[1]._context.app)._instance.subTree.type.__file.replace( /renderer\/.*/, '', ); let pathname = location.pathname + '/index'; const list = __vite_plugin_ssr['setPageFiles.ts'].pageFilesAll; let fileUrl = ''; console.log(list) console.log(pathname) if (pathname === '//index') { file = list.find(item => item.pageId === '/src/pages/index/index'); fileUrl = file.filePath; } else { file = list.find(item => item.pageId.includes(pathname)); fileUrl = file.filePath; } console.log(fileUrl); fetch(`/__open-in-editor?file=${baseSrc + fileUrl}`); return false; } if(typeof __VUE_DEVTOOLS_ROUTER__ !== 'undefined'){ const matched = __VUE_DEVTOOLS_ROUTER__.currentRoute._value.matched const vue3Url = matched[matched.length - 1].components.default.__file if(vue3Url){ console.log(vue3Url) fetch(`/__open-in-editor?file=${vue3Url}`) return } } if (typeof app !== 'undefined') { const vue3Url = window?.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps.find(item=>!!item.app?.config?.globalProperties.$route)?.app.config.globalProperties.$route.matched.slice( -1, )?.[0].components.default.__file; if (vue3Url) { console.log(vue3Url); fetch(`/__open-in-editor?file=${vue3Url}`); } else if (window.uni) { let app = window?.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps?.[0]; if(app.app){ app = app.app } const baseSrc = app._component.__file.replace('/App.vue', ''); const fileUrl = baseSrc + app.router.currentRoute.value.fullPath + '.vue'; fetch(`/__open-in-editor?file=${fileUrl}`); } else if (app) { const vm = app.__vue__; const fileUrl = vm.$route.matched[vm.$route.matched.length - 1].components.default.__file; fetch(`/__open-in-editor?file=${fileUrl}`); } } else if (typeof getApp === 'function' && localStorage.getItem('custom-file-base-url')) { const url = localStorage.getItem('custom-file-base-url') + getApp()._route.fullPath + '.vue'; console.log(url); fetch(`/__open-in-editor?file=${url}`); } } }); function highlight(clickedElement) { const rect = clickedElement.getBoundingClientRect(); const frame = document.createElement('div'); frame.style.position = 'absolute'; frame.style.top = rect.top + window.scrollY + 'px'; frame.style.left = rect.left + window.scrollX + 'px'; frame.style.width = rect.width - 4 + 'px'; frame.style.height = rect.height - 4 + 'px'; frame.style.border = 'solid 2px gold'; frame.style.borderRadius = '5px'; frame.style.zIndex = '99999'; frame.style.pointerEvents = 'none'; document.body.appendChild(frame); $(frame).fadeIn(300, 'swing').delay(500).fadeOut(500, 'swing'); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址