常用注入 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. 书签执行

地址栏执行的优化版。不过 只需要复制一次就可以了,后面不用再去复制。

  1. 打开浏览器的书签管理:右上角设置 -> 书签 -> 书签管理器 (或者直接在地址栏中输入 chrome://bookmarks/
    进行打开)
  2. 点击 添加新书签 ,打开弹窗
  3. 名称 自行输入,网址 就是那段 javascript: 拼合的代码,保存。

    然后,每次需要的时候,只需要点击一下书签就可以了:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多年前的树莓派 B+ 重新工作

1. 前言 最近整理房间的时候,发现在一块大约在 2014 年购买的树莓派,看了下电路板,型号是 b,看了下官网的参数: CPU: ARM1176JZF-S 核心 700MHz 单核RAM: 512MB 确实有点太弱了。 最近刚好想做一个家用的文件 Serve…

create-react-app 使用代理做 mock

1. 背景 很多情况下,为了测试需要一些接口的 mock 场景,基于 create-react-app 生产的项目 好处在于它内置了这块代理的能力,给用户提供了很大的方便。 2. 代理方式 create-react-app 默认提供了两种方式,关联到 webpack-dev-s…

解决写文档对于图片边框的强迫症

1. 写文档的困扰 在写文档进行配图时,很多时候图片是白色背景的,会导致文章中的图片区域附近有大量空白的感觉,强迫症患者很难受。 目前语雀做的是很好的,可以给图片加边框或者阴影,而一些文档博客平台(C…

实现图片本地化 ServiceWorker + IndexedDB

1. 背景 在一些安全场景,或者一些本地化的场景(如本地化的 Markdown 记事本),如果有图片上传并需要查看的场景,在不上传到服务器的情况下,实现这个效果,通常是把图片 Base64 化,但编…

XState Viz 可视化和调试状态机

1. 前言 状态机的一大好处就是可以可视化状态,降低业务的理解成本和相互间的沟通成本。 目前 XState 官方提供的可视化工具已经做的很不错了,但用起来偏重,国内访问也比较慢。这边我再原基础上进行了优化,并增加了部分新功能&am…

国内高速前端 Unpkg CDN 替代方案

1. 背景 目前国内有很多 NPM 的 CDN,可以高速支持相关包文件的访问下载,如: BootCDN: www.bootcdn.cn七牛云: www.staticfile.org360: cdn.baomitu.com字节跳动: cdn.bytedance.com 但这些 CDN 并不全,很多 NPM 上的包 在这些 …

小米 12S Utra 莱卡水印生成在线工具

前言 最近看到小米 12S Utra 的发布,看了下详情页面,发现演示的照片都好看的,包含了品牌、设备、镜头、位置等信息,如下图所示: 作为一个摄影爱好者,也希望把自己的照片也输出这些信息。 但目前此类水印…

解决 Rust Tauri 1.0 构建时下载 WiX失败

Rust 啥都好,就是构建太慢太慢。用我的 M1 构建 Mac 应用 10 分钟内还能拿下,但其它普通配置的就太慢了,即便用 Github Actions 大约也近 30 分钟才能构建完: 找一台高配置的 Windows 主机,结果经历了长时间的编译之后…

Rust Wasm 图片转 ASCII 艺术

有一些隐藏在代码中的 ASCII 有意思的图片,如: /*__ooOoo_o8888888o88" . "88(| -_- |)O\ /O____/---\____. \\| |// ./ \\||| : |||// \/ _||||| -:- |||||_ \| | \\\ - /| | || \_| \---// |_/ |\ .-\__ -. -__/-.…

我的新书《PWA入门与实践》上市了

前言 我初接触PWA是在2017年年初,当时参加了一个前端分享会,其中一个主题就是与PWA相关的,介绍了PWA的Service Worker和安装到桌面的能力,以及这门技术未来的发展趋势,听完这个分享后,我就为PWA的一些能力…

Linux ARM交叉编译工具链制作过程

一、下载源文件 源代码文件及其版本与下载地址: Binutils-2.19.tar.bz2 http://ftp.gnu.org/gnu/binutils/ gcc-4.4.4.tar.bz2 http://mirrors.kernel.org/gnu/gcc/gcc-4.4.4/ Glibc-2.11.2.tar.bz2 Glibc-ports-2.11.tar.bz2 http://ftp.gnu.org/gnu/glibc/ Gmp-4.…

数学建模之聚类模型详解

聚类模型 引言 “物以类聚,人以群分”,所谓的聚类,就是将样本划分为由类似的对象组成的多个类的过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测;也可以探究不同类之间的相关性和主…

Unity Hub安装Android Build Support报错:Failed to delete old Unity Android Supprtinstallation files

安装失败: 解决方法: 需要先安装 Android Build Support ,再安装 Android SDK & NDK Tools 和 OpenJDK 其他情况: 如果已经安装了Android SDK & NDK Tools 和 OpenJDK,只剩Android Build Support 未安装成功…

红米5 Plus刷开发版/小米手机刷开发版

到官网选择对应手机型号下载Rom包:MIUI下载 下载完成后手机打开:设置→我的设备→MIUI版本→右上角选择【手动选择安装包】,找到下载的包等待手机重启就行了。 PS:如果是像下面这样 小米手机找不到手动选择安装包 选项的话&#…

通过Blender将PMX模型转为FBX导入Unity

一、下载Blender(建议2.83版本不要太高的) 官网下载网址:Blender 2.83 LTS — blender.org 二、之后安装Blender,安装后下载插件 下载地址:https://codeload.github.com/GiveMeAllYourCats/cats-blender-plugin/zip/…

Git理论、原理、操作

Git理论、原理、操作 Git简介: 一个开源的分布式版本控制系统。用于处理任何大大小小的项目,是一个开放源码的版本控制软件。Git与SVG的区别: 1、git是分布式的 2、git把内容按元数据方式存储,svg按文件 3、git分支和svg分支不同…

Android中让Service被关闭后再重新启动

2019独角兽企业重金招聘Python工程师标准>>> --------------------------------------------------------------------------- 转载:http://blog.csdn.net/arui319 --------------------------------------------------------------------------- 如何做…

CloudStack学习-3

此次试验主要是CloudStack结合openvswitch 背景介绍 之所以引入openswitch,是因为如果按照之前的方式,一个网桥占用一个vlan,假如一个zone有20个vlan,那么岂不是每个vlan都要创建一个桥,维护很麻烦 openvswitch是由Nic…

EIGRP中非等价负载均衡的实现

Eigrp为思科私有协议,其协议号为88,采用组播(224.0.0.10)和单播的方式发送路由更新,并且支持等价和非等价负载均衡。首先来看下Eigrp选择路由的过程:Eigrp中有三张表,分别为Eigrp邻居表、Eigrp拓…

webpack+vue实现项目

webpackvue实现TODO慕课网课程笔记 课程目的: 前端工程:讲明一些前端基础的概念;如何搭建一个工程,一个工程解决了哪些问题 webpack:预计未来前端开发必备的基础 vue:相对于react使用比较简单方便&#xf…