2011-07-13 49 views
4

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

对不起,我遗漏了那部分。我在服务器上记录当前的胜利者,并尝试通过Greasemonkey使用JavaScript来显示游戏网站上的最后获胜时间。

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

<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

我没有看到任何标签。你必须在编辑器中使用代码按钮。我不知道什么是ID标签。你是说你的标签没有ID属性?如果是这种情况,您可以添加它。如果你无法添加。你的问题不清楚。 – user194076

+1

http://stackoverflow.com/editing-help –

+0

这是否意味着您无法访问HTML代码本身,但可以添加到JavaScript文件中?如果您可以用span标记围绕HTML的可编辑部分,这是微不足道的。 –

回答

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/

+0

这工作很好谢谢你,没有不知道如何通过标签获得b。到底我在找什么,谢谢。 – winsock

+0

请注意,'innerText'的东西没有必要,因为这是一个Greasemonkey环境。 –

+0

@布洛克德哦,将简化。谢谢。 –

0

总结要在<div>标签更改,然后找到在div对象通过它的id文本。然后更改该对象的innerHTML成员。

HTML:

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

的JavaScript:

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

当标记被写在提供 '钩子' 为它获得的方式JavaScript的作品最好的。由于您真的只有自由浮动的文本,因此没有办法确定要插入文本的特定位置。

如果你控制了源代码,看起来像添加一些<p>标签等以及ID和类来让你的生活更轻松是一个好主意。

+0

这是一个Greasemonkey应用程序。 –

0

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

也请谷歌对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'; 
+0

'
'评论是垃圾 - [''
'是完全有效的HTML5](http://stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br)。无论如何,你为什么假设OP正在编写HTML5? –

+0

@Mat Ball:感谢您的评论,我说的是基于(W3C Validator)[http://validator.w3.org/#validate_by_input+with_options]任何其他建议,将不胜感激 – 2011-07-14 06:42:50

0

介绍了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.