如何让 Tampermonkey 用户脚本替换文本文件中的单词?
How Do I Make A Tampermonkey Userscript Replace Words In Text Files?
6 年前我问了一个关于使用 greasemonkey 重写浏览器中显示的文本文件的问题。
Can I Make Greasmonkey Scripts Run On Text Files?
我现在回到一个类似的问题,我试图将它粘贴到 Tampermonkey,但它没有替换文本。
我做错了什么?
// ==UserScript==
// @name Rewrite LLVM License
// @namespace http://tampermonkey.net/
// @version 0.1
// @match http://llvm.org/releases/2.8/*
// @include http://llvm.org/releases/2.8/LICENSE.TXT
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant none
// ==/UserScript==
(function() {
//Just to tell the linter that $ is defined in jquery
/* global $ */
//Browsers display text in a pre tag
var pageTextNd=$("body > pre");
//Replace the text LLVM
var newPageTxt=pageTextNd.text().replace("LLVM", "Ernst Blofeld");
//Rewrite the page
pageTextNd.text(newPageTxt);
})();
您感兴趣的页面似乎重定向到:
https://releases.llvm.org/2.8/LICENSE.TXT
这就是您需要将 @include
或 @match
设置为的内容。
您还想替换 all 个 LLVM 实例,所以使用 .replaceAll
:
// ==UserScript==
// @name Rewrite LLVM License
// @include https://releases.llvm.org/2.8/LICENSE.TXT
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant none
// ==/UserScript==
(function() {
//Just to tell the linter that $ is defined in jquery
/* global $ */
//Browsers display text in a pre tag
var pageTextNd=$("body > pre");
//Replace the text LLVM
var newPageTxt=pageTextNd.text().replaceAll("LLVM", "Ernst Blofeld");
//Rewrite the page
pageTextNd.text(newPageTxt);
})();
如果您不想依赖 replaceAll
,请改用带有 .replace
的正则表达式:/LLVM/g
.
依靠 jQuery 来完成这种微不足道的事情似乎很奇怪 - 你可以在没有库的情况下很容易地完成它:
// ==UserScript==
// @name Rewrite LLVM License
// @include https://releases.llvm.org/2.8/LICENSE.TXT
// @grant none
// ==/UserScript==
const pre = document.querySelector('body > pre');
pre.textContent = pre.textContent.replaceAll('LLVM', "Ernst Blofeld");
6 年前我问了一个关于使用 greasemonkey 重写浏览器中显示的文本文件的问题。 Can I Make Greasmonkey Scripts Run On Text Files?
我现在回到一个类似的问题,我试图将它粘贴到 Tampermonkey,但它没有替换文本。
我做错了什么?
// ==UserScript==
// @name Rewrite LLVM License
// @namespace http://tampermonkey.net/
// @version 0.1
// @match http://llvm.org/releases/2.8/*
// @include http://llvm.org/releases/2.8/LICENSE.TXT
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant none
// ==/UserScript==
(function() {
//Just to tell the linter that $ is defined in jquery
/* global $ */
//Browsers display text in a pre tag
var pageTextNd=$("body > pre");
//Replace the text LLVM
var newPageTxt=pageTextNd.text().replace("LLVM", "Ernst Blofeld");
//Rewrite the page
pageTextNd.text(newPageTxt);
})();
您感兴趣的页面似乎重定向到:
https://releases.llvm.org/2.8/LICENSE.TXT
这就是您需要将 @include
或 @match
设置为的内容。
您还想替换 all 个 LLVM 实例,所以使用 .replaceAll
:
// ==UserScript==
// @name Rewrite LLVM License
// @include https://releases.llvm.org/2.8/LICENSE.TXT
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant none
// ==/UserScript==
(function() {
//Just to tell the linter that $ is defined in jquery
/* global $ */
//Browsers display text in a pre tag
var pageTextNd=$("body > pre");
//Replace the text LLVM
var newPageTxt=pageTextNd.text().replaceAll("LLVM", "Ernst Blofeld");
//Rewrite the page
pageTextNd.text(newPageTxt);
})();
如果您不想依赖 replaceAll
,请改用带有 .replace
的正则表达式:/LLVM/g
.
依靠 jQuery 来完成这种微不足道的事情似乎很奇怪 - 你可以在没有库的情况下很容易地完成它:
// ==UserScript==
// @name Rewrite LLVM License
// @include https://releases.llvm.org/2.8/LICENSE.TXT
// @grant none
// ==/UserScript==
const pre = document.querySelector('body > pre');
pre.textContent = pre.textContent.replaceAll('LLVM', "Ernst Blofeld");