У меня есть bookmarklet, нажимание bookmarklet включает Сценарий PHP (оцененный как файл JavaScript) к странице немного значений таблицы, и выберите значения, переданные, как ПОЛУЧАЮТ параметры. Сценарий PHP пишет данные страницы в базу данных MySQL и производит сообщение успеха, которое рассматривает как код JavaScript и выполняет браузер. Есть ли любая возможность сделать этого механика использования и вызвать эту функцию, когда существующая кнопка нажата на веб-странице.
Я записал вышеупомянутое bookmarklet вдохновленный этим учебным руководством.
http://tutorialzine.com/2010/04/simple-bookmarking-app-php-javascript-mysql/
Это - код bookmarklet:
(function () {
var jsScript = document.createElement('script');
jsScript.setAttribute('type', 'text/javascript');
jsScript.setAttribute('src', '/bookmark.php?url=' + encodeURIComponent(location.href) + '&title=' + encodeURIComponent(document.title));
document.getElementsByTagName('head')[0].appendChild(jsScript);
})();
Пожалуйста, помогите мне.
Мы часто так делаем.
Вот скрипт, который должен вам подойти, просто отредактируйте @include
, чтобы он соответствовал страницам, на которых будет использоваться скрипт Greasemonkey.
Кроме того, /bookmark.php
, вероятно, придется изменить на полный адрес, а не относительный.
//
// ==UserScript==
// @name Adding a live button
// @namespace http://www.google.com/
// @description Adds a custom bookmarking button.
// @include http://www.google.com/*
// ==/UserScript==
//
function LocalMain ()
{
/*--- Create a button in a container div. It will be styled and postioned with CSS.
*/
var zNode = document.createElement ('div');
zNode.innerHTML = '<form id="idMyForm" method="get" action="">'
+ ' <p><input type="submit" id="idMySubmitBtn" value="Bookmark it"></p>'
+ '</form>'
;
zNode.setAttribute ('id', 'idBookMarkBtnContainer');
document.body.appendChild (zNode);
zNode.addEventListener ("submit", BookmarkButtonAction, false);
}
function BookmarkButtonAction (zEvent)
{
zEvent.preventDefault();
var jsScript = document.createElement('script');
jsScript.setAttribute('type', 'text/javascript');
/*--- Is "/bookmark.php" going to work on all target pages?
*/
jsScript.setAttribute('src', '/bookmark.php?url=' + encodeURIComponent(location.href) + '&title=' + encodeURIComponent(document.title));
document.getElementsByTagName('head')[0].appendChild(jsScript);
return false;
}
window.addEventListener ("load", LocalMain, false);
//LocalMain();
GM_addStyle
(
'#idBookMarkBtnContainer \
{ \
position: absolute; \
top: 0; \
left: 0; \
\
background: orange; \
border: 3px double #999999; \
margin: 5px; \
opacity: 0.9; \
z-index: 222; \
\
min-height: 10px; \
min-width: 20px; \
padding: 5px 20px; \
} \
#idMySubmitBtn \
{ \
cursor: pointer; \
} \
'
);
Сделайте это фактической именованной функцией, а не закрытием (прямо в скрипте Greasemonkey), затем добавьте эту функцию как событие onclick= указанной кнопки, прямо в линию, чуть ниже фактической функции.
Хотя захват уже существующих кнопок веб-страниц для этой цели небезопасен и не является официально одобренным методом - гораздо лучше и проще прикрепить ее к команде меню Greasemonkey Menu Command и запускать ее оттуда (щелкните правой кнопкой мыши на маленьком значке обезьянки для меню).