Я совершенно новичок в Javascript и Greasemonkey, поэтому не стесняйтесь исправлять меня, если я делаю это неэффективно или неправильно.
На этом форуме, на котором я пишу, нажатие кнопки "Ответить" приводит квверх новое окно с просто текстовой формой для публикации. Я хочу создать скрипт greasemonkey, который добавляет скрипт для формы ответа на страницу реального потока.
Итак, программа просматривает таблицу, в которой хранится обсуждение, и добавляет childNode в конец таблицы.Я хочу, чтобы этот childNode был формой, созданной на странице ответов.
Вот скелет моего скрипта:
// ==UserScript==
// @name QuickEeply
// @namespace http://userscripts.org/users/181447
// @description Adds "QuickReply" forms to TCC discussion posts
// @include *
// ==/UserScript==
var tables = document.getElementsByTagName("td");
for (var i = 0; i < tables.length; i++) {
if (tables[i].className == "content")
{ var editTable = tables[i];
}
}
editTable.appendChild = ''
Вот скрипт, который я скопировал и вставил со страницы ответа
<form method="POST" action="http://dl.tccd.edu/index.php/classforums/posts/event=saveReply">
<input type="hidden" name="subject" size="45" id="txt_subject" maxlength="200" value="">
<br>
Message:<br>
<textarea rows="20" style="width:70%;" name="message" id="message"></textarea>
<br>
<br>
<input type="submit" id="submit_post" value="Post Reply">
<input type="hidden" name="post_id" value="1010815">
<input type="hidden" name="thread_id" value="1010815">
</form>
Так как можноЯ занимаюсь созданием сценария, который находит идентификатор_потока текущей страницы и создает поле для ответа для каждой страницы на странице, где фактически находится поток.
Редактировать: вот исходный код -
http://pastebin.com/2UaUVGJA (главная страница обсуждения)
http://pastebin.com/hAx2SPUu (страница ответов)
РЕДАКТИРОВАТЬ 2:
I've used Brock's template, and it's not working. What do I need to do to correct it?
// ==UserScript==
// @name Quick_ReplyTest
// @namespace http://userscripts.org/users/181447
// @description Inserts QuickReply
// @include *
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==
/* Optional:
window.addEventListener ("load", Greasemonkey_main, false);
*/
$(document).ready (Greasemonkey_main);
function Greasemonkey_main ()
{
/*--- Get the first node inside the id="main" span (Google.com)
If that's not there, then get the first node of the html body.
*/
var TargetNode = $("a[href*='event=reply/post']");
if (!TargetNode)
TargetNode = $("body *:first");
$(TargetNode).after
(
"<form method="POST" action="http://dl.tccd.edu/index.php/classforums/posts/event=saveReply">
+ "<input type="hidden" name="subject" size="45" id="txt_subject" maxlength="200" value="">"
+ "<br> Message:<br>"
+ "<textarea rows="20" style="width:70%;" name="message" id="message"></textarea>"
+ "<br> <br>"
+ "<input type="submit" id="submit_post" value="Post Reply">"
+ "<input type="hidden" name="post_id" value="1010815">"
+"<input type="hidden" name="thread_id" value="1010815">"
+"</form>"
);
}