[英]Tampermonkey script to turn text into links
另一个可怜的灵魂在Tampermonkey / Greasemonkey中无法进行文本替换的正面或反面。 我正在处理一系列表行,如下所示:
<table class="table table-striped table-hover">
<tr>
[a bunch of header cells]
</tr>
<tr>
<td>412</td>
<td>An image</td>
<td>A thing</td>
<td>A person</td>
<td>A place</td>
</tr>
<tr>
<td>3789</td>
<td>An image</td>
<td>A thing</td>
<td>A person</td>
<td>A place</td>
我想要的是将每个数字转换为这种形式的链接:
<td><a href="https://mydomain.com/workflow/index.html?
endrun=1&submit=Edit&record=3789">3789</a></td>
(在?后面的换行符恰好在这里适合页面; URL中不应该有实际的换行符。)
表中有多行; 每一个都以我想要链接的数字开头。 在网站的某些页面上,该数字是每行中的第三个或第四个项目,而不是第一个。 每个页面只有一个表。 我不想更改标题行中的第一个单元格,因为这些单元格已经可以点击并用于排序,我不想链接任何单词 - 只是数字。
我看了最简洁的方法来在网页上进行文本替换? (使用GreaseMonkey)和如何从Greasemonkey中的现有文本创建链接? 和Greasemonkey:在表格中添加一个链接和http://www.overclock.net/t/487779/help-with-greasemonkey-and-regular-expressions但我无法弄清楚如何制作任何建议答案适用于我的情况。 (我在Chrome中运行Tampermonkey,但希望Greasemonkey的答案对我有用。)我会谦卑地感谢任何帮助。
这应该用于tampermonkey。
只需要将命名空间更新为您希望它运行的命名空间。 如果该站点已经使用了jQuery,那么您也可以抛弃require属性。
// ==UserScript== // @name Updator // @namespace http://stackoverflow.com/ // @version 0.1 // @description enter something useful // @match http://*/* // @copyright 2012+, You // @require http://code.jquery.com/jquery-2.1.1.min.js // ==/UserScript== $(document).on("ready", function() { $("table.table-striped td:first-child").each(function(e, i){ var this$ = $(this); var q = this$.html() if (/^\\d+$/ig.test(q)){ this$.html("<a href='https://mydomain.com/workflow/index.html?endrun=1&submit=Edit&record=" + q + "' >" + q + "</a>"); } }); });
如果你不使用jQuery,你也可以这样做:
var cells = [];
var coll1 = document.getElementsByTagName('TH');
var coll2 = document.getElementsByTagName('TD');
for (var i = 1; i < coll1.length; i++) {
cells.push(coll1[i]);
}
for (var i = 0; i < coll2.length; i++) {
cells.push(coll2[i]);
}
for (var i = 0; i < cells.length; i++) {
var cellValue = cells[i].innerHTML;
var number = cellValue.match(/\d+/)[0];//get first number in a cell
cells[i].innerHTML = cellValue.replace(/\d+/, '<a href="https://mydomain.com/workflow/index.html?endrun=1&submit=Edit&record=' + number + '">' + number + '</a>');
}
编辑使用了您的链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.