我一直在寻找一种在网站上更改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>
答案 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;
}
}
答案 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() )
答案 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';