常用注入 Script 方法
生活随笔
收集整理的這篇文章主要介紹了
常用注入 Script 方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 背景
- 如果你想在當前的頁面,試一下某個 JS 工具庫,而這個工具庫恰好你沒安裝。(如 lodash)
- 如果你想分享一段腳本給別人,而又不希望別人在執行的過程太過麻煩。(如你寫了一段恢復復制和右鍵功能的腳本)
那下面的方法你可以嘗試一下。
2. 常用方法
主要方法有如下。
2.1. 工具包的注入
復制如下代碼,在 DevTools 中執行就可以了:
function ls(src, callback, prefix = "https://unpkg.com/") {var _script = document.createElement("script");_script.src = prefix + src;_script.onload = (e) => {console.log("===> 加載完成", src);callback && callback();};document.head.appendChild(_script); }ls("工具包名");如 lodash、jquery、dayjs:
ls("lodash", () => {console.log('load:', _) }); ls("jquery", () => {console.log('load:', $) }); ls("dayjs", () => {console.log('load:', dayjs) });使用其他源:
ls("react/umd/react.production.min.js", () => {console.log('load:', React) }, 'https://unpkg.zhimg.com/');ls("xstate@4/dist/xstate.js", () => {console.log('load:', XState) }, 'https://cdn.jsdelivr.net/npm/');2.2. 腳本的注入
如下面這段清除水印及恢復右鍵、選取的腳本:
[document, ...document.getElementsByTagName("*")].map((item) => {if (item.style) {item.style.cssText += "user-select:auto!important;";if (item.style.cssText.indexOf("url(") >= 0) {item.style.cssText += "background:unset!important;";}}item.oncontextmenu =item.oncopy =item.onselectstart =item.οnpaste =item.oncut =item.onmousedown =function (e) {e.stopPropagation();return true;}; });如果想分享給其他人使用,有如下方法:
2.2.1. 直接 DevTools 執行
就是直接粘貼到 DevTools 的 Console 下,直接執行就可以了。
但這個比較麻煩,每次都要打開 DevTools 和 復制。
2.2.2. 直接在地址欄執行
在腳本前面加上 javascript:,然后直接粘貼在地址欄中,回車即可執行。
比 2.2.1 少了一步打開 DevTools 的過程,但還是需要復制,且如果復制的內容包含 javascript:,地址攔會自動給你清除掉,除非你手動再輸入一遍。
2.2.3. 書簽執行
地址欄執行的優化版。不過 只需要復制一次就可以了,后面不用再去復制。
進行打開)
然后,每次需要的時候,只需要點擊一下書簽就可以了:
總結
以上是生活随笔為你收集整理的常用注入 Script 方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 框架分析--框架的类关系图
- 下一篇: 第15章:模板匹配