"文本-6ren"> "文本-我想使用 Greasemonkey 为 Firefox 做一个 Greentext 插件,但不使用 jQuery。 这是我做的: function highlight() { -6ren">
gpt4 book ai didi

javascript - 使用 JavaScript 替换 ">"文本

转载 作者:行者123 更新时间:2023-11-30 18:16:53 24 4
gpt4 key购买 nike

我想使用 Greasemonkey 为 Firefox 做一个 Greentext 插件,但不使用 jQuery。

这是我做的:

<head>
<script type="text/javascript">
function highlight() {
var elm = document.getElementsByClassName("mainWrapper");

for(i = 0; i < elm.length; i++)
{
elm[i].innerHTML.replace(">","pony");
}
}

alert("PONY");
</script>
</head>

<body onload="highlight()">
<div class="mainWrapper"><span class="noob"> > N00b </span>
</div>
</body>

这是该功能的测试版本,我这样做是因为我认为问题出在 Greasemonkey 上,但它还不能运行。

你能帮帮我吗?我不是很擅长编程,我也不太了解如何在 JS 上编写脚本。

最佳答案

对于这样的事情,您只需要处理页面的文本部分——这样 HTML(和任何附加的 JS)就不会被破坏。

因此 (1) 不要使用 innerHTML,并且 (2) 代码最好使用称为 recursion 的技术, 以有效地解析节点。

另请注意,> 可以编码为 >>(可能还有一些更罕见的方法也是)。

这是执行这种搜索和替换的一个完整的 Greasemonkey 脚本:

// ==UserScript==
// @name _Replace HTML-sensitive text
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @include http://fiddle.jshell.net/DJLEq/*
// @grant none
// ==/UserScript==

var targElements = document.querySelectorAll ("div.mainWrapper");

for (var J = targElements.length - 1; J >= 0; --J) {
repGreaterWithPonies (targElements[J] );
}

function repGreaterWithPonies (node) {
if (node.nodeType === Node.TEXT_NODE) {
// YOUR CUSTOM REPLACE GOES HERE.
node.nodeValue = node.nodeValue.replace (/>|&gt;/ig, "pony");
}
else if (node.nodeType === Node.ELEMENT_NODE) {
for (var K = 0, numNodes = node.childNodes.length; K < numNodes; ++K) {
repGreaterWithPonies (node.childNodes[K] );
}
}
}


安装该脚本和 you can see it work on this page: fiddle.jshell.net/DJLEq/...

关于javascript - 使用 JavaScript 替换 ">"文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com