使用Greasemonkey更改HTML

时间:2011-07-13 21:43:33

标签: javascript html greasemonkey

我一直在寻找一种在网站上更改HTML的方法我的主要问题是它没有id标签,我可以使用它来使用Greasemonkey JavaScript将其拉出并进行更改。

抱歉,我把那部分遗漏了。我正在服务器上记录当前的获胜者,并试图通过Greasemonkey使用JavaScript来显示游戏网站上的最后一次获胜时间。

以下是来源的一部分,在下面的示例中,我想在<b>标记之间添加 Raiton 旁边的当前时间。

<html>
<head>

Most Recent Winner: <b>Raiton</b><br>
Entry Cost: <font color=22AA22><b>11000</b></font> (resets at Dayroll)<br>

Entry costs go up in <font color=2222AA><b>11</b></font> entries to <font color=22AA22><b>22000</b></font> Ryo<br>
Number of plays today: <font color=AA2222><b>0</b></font><br>


</body>
</html>

6 个答案:

答案 0 :(得分:4)

到目前为止,我还没有看到任何回答这个问题的答案。试试这个:

var elts = document.getElementsByTagName('b'),
    i = elts.length,
    elt,
    text;

while (i--)
{
    elt = elts[i];
    text = elt.textContent;
    if (text === 'Raiton')
    {
        elt.textContent = text + ' ' + new Date();
        break;
    }
}

演示:http://jsfiddle.net/mattball/Nvwmd/

答案 1 :(得分:1)

<div>标记中包含您要更改的文本,然后通过它的id找到div对象。然后更改对象的innerHTML成员。

HTML:

<div id='some_id'>A value</div>

JavaScript的:

var my_div = document.getElementById('some_id')
my_div.innerHTML = 'Some other value'

答案 2 :(得分:1)

将jQuery引入您的GM脚本(稍后您会很高兴)。

将此行添加到metadata block

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js

然后这个脚本会做你想要的:

var bElem = $ ("b:contains('Raiton')");
bElem.text (bElem.text() + new Date() )


See the demo at jsFiddle.

答案 3 :(得分:1)

关注此主题:MozillaZine:使用Greasemonkey替换简单文本

http://forums.mozillazine.org/viewtopic.php?f=19&t=907475

该计划如下:

document.body.innerHTML= document.body.innerHTML.replace(/original/g,"new");

您需要使用/符号转发"\等特殊字符。

答案 4 :(得分:0)

当标记以一种为其提供“钩子”的方式编写时,Javascript的效果最佳。由于您实际上只有自由浮动文本,因此无法确定要插入文本的特定位置。

如果您控制了源代码,那么添加一些<p>代码并使用ID和类似乎是一个好主意,这样可以让您的生活更轻松。

答案 5 :(得分:0)

您可以创建一个元素来使用它来更新部分代码:

另外请google for html5,你不要使用它的条款;)

<html>
<head>

Most Recent Winner: <b>Raiton</b><span id="time_handler">00:00</span><br> <!-- HTML5!? <br /> -->
Entry Cost: <font color=22AA22><b>11000</b></font> (resets at Dayroll)<br>

Entry costs go up in <font color=2222AA><b>11</b></font> entries to <font color=22AA22><b>22000</b></font> Ryo<br>
Number of plays today: <font color=AA2222><b>0</b></font><br>


</body>
</html>

在javascript中:

document.getElementById('time_handler').innerHTML = '11:23';