[英]Greasemonkey / Tampermonkey Create a link from text on an Amazon page
[英]Insert link with text from another link greasemonkey
我想要做的是為我使用的該論壇的每個線程插入一個鏈接和img。 鏈接的href應基於元素的子元素的href。 這是HTML的部分視圖,為了清楚起見,我已經刪除了一些內容,請問是否花了太多時間。 最后一個標簽重復20次左右,具體取決於首選項中可見的線程數量
<div id="content">
<form id="page_form">
<div id="forums">
<table class="grid forumtable">
<tr></tr>
<tr></tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>
<div class="lastposter">
<a></a>
<a href="view/1234/?page=last#845612"><img></img></a>
</div>
</td>
</tr>
<tr> ...same as above.. x20 </tr>
</table>
</div>
</form>
</div>
到目前為止,這是我的代碼,可以通過插入靜態鏈接來工作。 我想要的是使用上一個鏈接中#后面的值的鏈接。
var lastpst = document.getElementsByClassName('lastposter');
for (var i=0; i < lastpst.length; i++){
links = document.createElement('a');
links.setAttribute('href','we.html');
links.innerHTML ='<a href="we.html"><img src="/static/img/silk/zoom.png" /></a>';
lastpst[i].appendChild(links);
}
那么,如何從lastpst [i]訪問標簽並使用href創建我自己的鏈接?
我本以為可以使用XPATH編寫此代碼,但我不太了解。 在這種情況下,這是個好主意嗎?
很抱歉這個長期的問題。
首先,在上面的代碼示例中,您意識到您正在創建一個鏈接( 一個標簽),然后通過innerHTML在其中嵌套第二個鏈接? 您可能不想這樣做...
如果我正確理解問題,那么我將執行以下操作:
var lastpst = document.getElementsByClassName('lastposter');
for (var i=0; i < lastpst.length; i++){
var secondLink = lastpst[i].getElementsByTagName('a')[1];
var secondLink = secondLink.href;
// whatever you need your own code to do...
}
希望這可以幫助。
實際上,我想我已經解決了..(謝謝邁克爾,感謝您的輸入,我已修復了此代碼)
var lastpst = document.getElementsByClassName('lastposter');
for (var i=0; i < lastpst.length; i++){
l = lastpst[i].getElementsByTagName('a')[1];
ln = l.getAttribute('href');
ln = ln.replace(/(?:.*?)#([0-9]{6})/,'/post/view/$1');
links = document.createElement('a');
links.setAttribute('href',ln);
links.innerHTML ='<img src="/static/img/silk/zoom.png" />';
lastpst[i].appendChild(links);
}
有人看到這有什么問題嗎?
根據您自己的響應,您應該真正自己處理DOM操作,而不是將其插入另一個標簽中。 另外,將A標簽放在A標簽中可能不是一個好主意。
var lastpst = document.getElementsByClassName('lastposter');
for (var i=0; i < lastpst.length; i++){
l = lastpst[i].getElementsByTagName('a');
ln = l[1].getAttribute('href');
ln = ln.replace(/(?:.*?)#([0-9]{6})/,'/post/view/$1');
links = document.createElement('a');
links.href = ln;
img = document.createElement('img');
img.src = "/static/img/silk/zoom.png"
links.appendChild(img);
lastpst[i].appendChild(links);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.