如何在Greasemonkey中创建现有文本的链接? [英] How to create links from existing text in Greasemonkey?

查看:135
本文介绍了如何在Greasemonkey中创建现有文本的链接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想我在理解如何使用正则表达式和创建链接方面遇到了太多麻烦......



我正在为一个虚拟的Greasemonkey脚本工作宠物游戏,将为某个页面上列出的每个生物创建指向维基的链接。问题是,新的宠物一直被添加到页面中,所以我不能只是将链接硬编码到脚本中。我需要搜索生物名称,然后将其作为链接...



您可以查看 目标网页 ,无需注册。



示例源代码来自目标页面:

 < tr> 
< td> Flizzard< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< / tr>
< tr>
< td> Fluff< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< img src =./ images / icons / yes.png/>< / td>
< td align =center>< a href =achievementments.php?family = Fluff& acc = exalted>< img src =./ images / icons / no.png border =0/>< / a>< / td>
< td align =center>< a href =achievementments.php?family = Fluff& acc = herd>< img src =./ images / icons / no.png border =0/>< / a>< / td>
< / tr>





Flizzard和Fluff将是我想变成链接......我发现了这个并开始研究它,它可能会起作用,除了它似乎没有说明从哪里开始比赛(以一种对我有意义的方式),我不知道该放什么(The-Identifier-That-Denotes-Of-Text-Of-Interest)

  var html = document.body.innerHTML; 
html = html.replace(/(http://wiki.unicreatures.com/index.php?title=)(.*?)(The-
Identifier-That-Denotes-End-Of -Text-Of-Interest)/ g,$ 1< a href =path / to / $ 2> $ 2< / a> $ 3
);
document.body.innerHTML = html;



有人可能请试试解释这个正则表达式如何工作,以及什么会起作用(The-Identifier-That-Denotes-Of-Text-Of-Interest),因为我似乎没有在生物名称后看到任何标点符号或空格?



谢谢!



(请不要jQuery信息... javascript足以让我的大脑现在环绕LOL)

解决方案

另一个答案没有用......但是确实如此

  var mytable = document.getElementById('right')。getElementsByTagName('table')[4]; 
var myrows = mytable.rows

for(i = 1; i< myrows.length; i ++)
{
var oldInner;
oldInner = myrows [i] .cells [0] .innerHTML;
var critterName;
critterName = myrows [i] .cells [0] .textContent;

myrows [i] .cells [0] .innerHTML =< a href ='http://wiki.unicreatures.com
/index.php?title=+ critterName +'+'target =_ blank>'+ oldInner +< / a>;
}


I think I'm just having too much trouble understanding how to use regex and creating links...

I'm working on a Greasemonkey script for a virtual pet game that will create links to the wiki for each creature listed on a certain page. The problem is, new pets get added to the page all the time so I can't just hardcode the links into the script. I need to search for the creatures names and then make it a link...

You can view the target page without signing up.

Sample source code from the target page:

<tr>
    <td>Flizzard</td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
</tr>
<tr>
    <td>Fluff</td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><img src="./images/icons/yes.png" /></td>
    <td align="center"><a href="accomplishments.php?family=Fluff&acc=exalted"><img src="./images/icons/no.png" border="0" /></a></td>
    <td align="center"><a href="accomplishments.php?family=Fluff&acc=herd"><img src="./images/icons/no.png" border="0" /></a></td>
</tr>  

.
.

"Flizzard" and "Fluff" would be what I want to turn into links... I found this and started working on it, and it might work, except it doesn't seem to say where to start the match (in a way that makes sense to me anyways), and I have NO clue what to put in (The-Identifier-That-Denotes-End-Of-Text-Of-Interest)

var html = document.body.innerHTML;
html = html.replace( /(http://wiki.unicreatures.com/index.php?title=)(.*?)(The-
Identifier-That-Denotes-End-Of-Text-Of-Interest)/g, $1<a href="path/to/$2">$2</a>$3
);
document.body.innerHTML = html;  

.

Could somebody maybe please try to explain how that regex works, and what would work for (The-Identifier-That-Denotes-End-Of-Text-Of-Interest) since I don't seem to see any punctuation or spaces after the creatures names?

Thanks!

(Please NO jQuery info... javascript is enough to wrap my brain around right now LOL)

解决方案

The other answer didn't work... but this did

var mytable = document.getElementById('right').getElementsByTagName('table')[4];
var myrows = mytable.rows

for(i=1;i < myrows.length;i++)
{
var oldInner;
oldInner = myrows[i].cells[0].innerHTML;
var critterName;
critterName=myrows[i].cells[0].textContent;

 myrows[i].cells[0].innerHTML = "<a href='http://wiki.unicreatures.com
/index.php?title=" + critterName + "'"+ 'target="_blank">'+oldInner +"</a>";
}

这篇关于如何在Greasemonkey中创建现有文本的链接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆