Букмарклет для отправки источника страницы в форму

используя букмарклет для отправки источника текущей страницы на серверную функцию, которая затем обрабатывает его (сохраняет его, пользователю не нужно возвращать информацию).

Предупреждение: уродливый Javascript вперед, этоэто не тот язык, который мне обычно нужен.

Вот's букмарклет, довольно напечатанный для удобства чтения:

javascript: (function () {
var h = document.documentElement.innerHTML;

function c(a, b) {
    var c = document.createElement("textarea");
    c.name = a;
    c.value = b;
    d.appendChild(c)
}(document), d = document.createElement("form");
d.method = "POST";
d.action = "http://example.com/do.php";
d.enctype = "multipart/form-data";
d.target = "_blank";
c("h", h);
c("u", "1234");
document.body.appendChild(d);
d.submit();
})();

Это в основном работает "do.php» получает разделы головы и тела в виде переменной h.

Тем не менее, кажется, что он работает только один раз для каждой страницы. Если букмарклет нажимается дважды для одной и той же страницы, ничего не происходит. Когда страница перезагружается, она снова работает. Есть ли что-то, что я должен сбросить? (Одного запуска достаточно, конечно, но было бы неплохо дать пользователю обратную связь при втором нажатии).

Во-вторых, появляется новая вкладка / окно. Я могу обойти это, заставив do.php вернуть некоторый JavaScript, чтобы закрыть окно (примечание: это только для целей тестирования, а не для реального кода):


Некрасиво. Быстрая прошивка новой вкладки, затем онаушел. Есть ли лучший подход? А "успех» сообщение было бы хорошо, но я могуне вижу, как это включить.

Ответы на вопрос(1)

Ваш ответ на вопрос