油猴脚本的学习使用

1、打开其权限

在浏览器的扩展里面打开开发者模式,打开其详情

image-20251208104159718

image-20251208104132726

然后用以下代码做个简单的测试

// ==UserScript==
// @name Print Message on Specific Page
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 在特定页面上打印消息
// @author You
// @match https://cms.zjjtgc.com/jg-web/jg-inventory/*
// @grant none
// ==/UserScript==

(function() {
'use strict';

alert('您已经访问了目标页面!');

})();

说明

@name:脚本的名称。这个会在 Tampermonkey 插件中显示,便于识别。
@namespace:给脚本定义一个命名空间,通常是脚本源的 URL。这里用的是 Tampermonkey 的官方 URL。
@version:脚本的版本号,这里是 1.0。
@description:脚本的简要描述,说明该脚本的功能。在此脚本中,描述的是“在特定页面上打印消息”。
@author:脚本的作者,通常是脚本编写者的名字。
@match:定义哪些 URL 会触发脚本运行。这里的 https://cms.zgc.com/jg-web/jg-inventory/* 表示所有访问 https://cms.zgc.com/jg-web/jg-inventory/ 开头的页面都会运行这个脚本。
@grant:用于定义脚本的权限,none 表示不使用任何特定的权限。

然后就可以使用js愉快的编写油猴脚本了。

2、基础

查找元素

直接使用window.addEventListener(‘load’, function() {}查找元素时很可能查找不到,原因是文档加载完了,但是js还有一些没有,这里可以考虑三种方法

一、加延迟时间,最简单

window.addEventListener('load', function() {
setTimeout(() => {
...............
}, 2000); // 延迟2秒检查
});

二、创建MutationObserver观察

const observer = new MutationObserver(() => {
..................
}

observer.observe(document.body, { childList: true, subtree: true });

三、循环查找,耗性能

window.addEventListener('load', function() {
const intervalId = setInterval(() => {
.............
}, 500); // 每500ms检查一次
});

添加元素和样式

修改样式还可以添加

newButton.setAttribute('style', 'background-color: #4CAF50; color: white; border-radius: 5px; padding: 5px 15px; font-size: 14px; cursor: pointer;');
不过会覆盖原有样式

newButton.style.cssText = `
background-color: #4CAF50; /* 设置背景色 */
color: white; /* 设置文字颜色 */
border-radius: 5px; /* 设置圆角 */
padding: 5px 15px; /* 设置按钮的内边距 */
font-size: 14px; /* 设置字体大小 */
cursor: pointer; /* 鼠标悬停时变成指针 */
`;
最实用吧

还有效果的

// 为按钮添加鼠标悬停效果
newButton.addEventListener('mouseover', function() {
newButton.style.backgroundColor = '#45a049'; // 悬停时的背景色
});

文本获取

以xpath来获取的


请求添加