Я хочу, чтобы изменить страницу HTML, которая выглядит примерно так:Greasemonkey: Добавить ссылку в таблице
<html><head><title>Test</title></head>
<body bgcolor=white link=black alink=black vlink=black text=black>
<table cellpadding=0 ><tr><td class=tiny align=center>
<a href="apple.php">apple</a>
<a href="peach.php">peach</a>
<a href="banana.php">banana</a>
<a href="strawberry.php">strawberry</a><br>
<a href="carrot.php">carrot</a>
<a href="bean.php">bean</a>
<a href="tomato.php">tomato</a>
<a href="cucumber.php">cucumber</a>
</td></tr></table></body></html>
Теперь я написал Greasemonkey скрипт, чтобы добавить дополнительную ссылку, сохраняя при этом все существующие :
// ==UserScript==
// @name link_add_test
// @namespace file:///D:/Test/
// @description Test for adding an additional link
// @include file:///D:/Test/test.html
// @version 1
// @grant none
// ==/UserScript==
var searchstring = 'peach';
var anchors = document.getElementsByTagName('a');
for (i=0; i<anchors.length; i++)
{
if (anchors[i].innerHTML == searchstring)
{
var newlink = document.createElement('a');
newlink.href = 'chocolate.php';
newlink.innerHTML = 'chocolate';
newlink.target = '_blank';
anchors[i].parentNode.insertBefore(newlink, anchors[i].nextSibling);
}
}
Это делает почти то, что я хочу, чтобы это сделать, но не совсем. Результат выглядит так:
Почему нет никакого пространства между «персик» и «шоколад»? Когда я отключить GM и вручную добавить строку в HTML-файл с ссылкой шоколадного, она отображается следующим образом:
apple peach chocolate banana strawberry
carrot bean tomato cucumber
Это то, что я хочу достичь. Где ошибка в моем GM-скрипте? Я буквально пробовал уже несколько часов, но я не могу его найти. :-(
Спасибо Hellion. Сейчас он работает нормально. –