[英]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.