日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

如何使用Tampermonkey开发并使用一个浏览器脚本

發布時間:2023/11/27 HTML 60 coder
生活随笔 收集整理的這篇文章主要介紹了 如何使用Tampermonkey开发并使用一个浏览器脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

準備工作

簡介

Tampermonkey 是一款強大的瀏覽器擴展,它允許您定制網頁的行為,改變和優化網頁的展示方式或者功能以滿足個人需求。通過編寫自定義腳本,您可以實現許多有趣的功能,從自動化任務到改進網頁界面,一切盡在掌握。
腳本一般指用戶腳本(User Script),他是一段 Javascript 代碼,它們能夠優化您的網頁瀏覽體驗。

安裝

首先,確保您已安裝了 Tampermonkey 擴展。
油猴官方下載地址:http://www.tampermonkey.net/

油猴腳本網站:https://greasyfork.org/zh-CN/scripts

油猴支持的瀏覽器有 Chrome, Microsoft Edge, Safari, Opera Next, Firefox,和 UC 瀏覽器等等,各大主流瀏覽器幾乎都支持了。

腳本編寫和使用

新建腳本

點擊 Tampermonkey 圖標,然后選擇 "添加新腳本"。
這將打開一個編輯器,您可以在其中編寫腳本代碼。

跳轉到編寫代碼界面:

常見用戶腳本標題

屬性名 作用
name 油猴腳本的名字
namespace 命名空間,用來區分相同名稱的腳本,一般寫成作者名字或者網址就可以了
version 腳本的版本號
icon 可以指定腳本的圖標,顯示在腳本管理器中
description 描述,用來告訴用戶這個腳本是干什么用的
author 作者名字
match 這是一個數組,包含了腳本要運行的網頁地址。可以使用通配符和正則表達式
exclude 與match屬性相反,指定腳本不應運行的網頁地址
grant 用于指定腳本需要的特定瀏覽器權限,如GM_addStyle、GM_xmlhttpRequest等
require 如果腳本依賴其他js庫的話,可以使用require指令,在運行腳本之前先加載其他庫,常見用法是加載jquery
resource 用于定義腳本所需的外部資源,如CSS文件、圖片等
connect 當用戶使用GM_xmlhttpRequest請求遠程數據的時候,需要使用connect指定允許訪問的域名,支持域名、子域名、IP地址以及*通配符

常見API介紹

Tampermonkey 提供了一系列常用的 API,使您能夠與頁面交互和修改其行為。以下是一些常見的 Tampermonkey API:

權限名 功能
GM_setValue(name,defaultValue),GM_getValue(name,value) 用于在瀏覽器中存儲和獲取用戶腳本的數據。這可以用于保存設置或其他信息。
GM_xmlhttpRequest(details) 允許用戶腳本進行XMLHttpRequest請求,以便與遠程服務器進行通信,獲取數據等。
GM_setClipboard(data, info) 用于將文本復制到剪貼板,使用戶腳本可以方便地與剪貼板交互。
GM_log(message) 用于在控制臺中輸出調試信息,方便腳本調試,可以使用F12開發者工具查看。
GM_addStyle(css) 像網頁中添加自定義css,修改網頁外觀。
GM_notification(details, ondone), GM_notification(text, title, image, onclick) 設置網頁通知,請參考文檔獲取用法。
GM_openInTab(url, loadInBackground) 允許在新標簽頁中打開指定的URL。
GM_registerMenuCommand(name, callback, options_or_accessKey) 允許用戶腳本在瀏覽器中向用戶腳本的菜單中添加一個新條目,并指定在選擇菜單項時要調用的函數。

詳情請查看油猴腳本文檔。

實現CSDN 免登錄復制

為了更好地理解腳本的工作原理,我們以一個實際示例來說明如何編寫一個腳本。下面是一個用于允許用戶在 CSDN 網站上免登錄復制代碼的腳本示例:
`
// UserScript
// @name CSDN 免登錄復制
// @version 1.0
// @icon https://blog.csdn.net/favicon.ico
// @description CSDN 免登錄復制,凈化頁面
// @match ??/.csdn.net/*
// @grant GM_addStyle
// /UserScript

(function () {
"use strict";

// 添加樣式以隱藏特定元素
GM_addStyle(`
/* 選擇了所有

 元素,并設置它們的 user-select 屬性為 auto
// 這個規則的效果是允許用戶可以復制這些元素中的文本內容*/
pre,
code {
user-select: auto !important;
}

/* 這一部分選擇了一系列元素,并將它們的 display 屬性設置為 none !important。
這個規則的效果是隱藏了頁面上這些元素,以實現頁面去除廣告的目的。*/
#blogExtensionBox,
.hide-article-box,
.insert-baidu-box,
.signin,
.wwads-horizontal,
.wwads-vertical,
.blog-top-banner,
.blog_container_aside,
.programmer1Box,
.recommend-box,
.recommend-nps-box,
.template-box,
.hide-preCode-box {
display: none !important;
}

/* 將頁面主要內容區域的寬度設置為100% */
main {
  width: 100% !important;
}

/* 這個規則的效果是將頁面中的某些元素的高度設置為自動,為了確保這些元素的內容可以根據需要進行展開。*/
#article_content,
main div.blog-content-box pre.set-code-hide {
  height: auto !important;
}

`);

// 移除登錄限制類名
let buttons = document.querySelectorAll(".hljs-button");
buttons.forEach(button => {
	button.classList.remove("signin");
  button.setAttribute("data-title", "免登錄復制");
  });

 // 添加點擊事件以防止剪貼板劫持
  let codeElements = document.querySelectorAll("code");
	codeElements.forEach(code => {
	code.setAttribute("onclick", "mdcp.copyCode(event)");
 });

})();
`

腳本注入頁面前

腳本注入頁面前,頁面可能會有一些限制,如復制受限,腳本的注入使您能夠繞過這些限制。

登錄前
click綁定攔截了復制方法,復制按鈕綁定了signin類限制訪問

登錄后

注入腳本

腳本注入頁面后

發布腳本

上傳腳本

油猴腳本支持好幾個網站,其中目前最主流的是GreasyFork,登錄這個網站注冊一個賬號,然后進入用戶頁面選擇發布你編寫的腳本,然后填寫腳本代碼和各項信息。
https://greasyfork.org/zh-CN/users

``
這樣腳本就可以提交上去了,其他人也可以搜索到并安裝腳本了。

總結

以上是生活随笔為你收集整理的如何使用Tampermonkey开发并使用一个浏览器脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。