механик вставляет JavaScript

У меня есть 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);
})();

Пожалуйста, помогите мне.

1
задан Kaartz 24 May 2010 в 17:39
поделиться

2 ответа

Мы часто так делаем. Вот скрипт, который должен вам подойти, просто отредактируйте @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;            \
    }                                               \
   '
);
2
ответ дан 3 September 2019 в 00:19
поделиться

Сделайте это фактической именованной функцией, а не закрытием (прямо в скрипте Greasemonkey), затем добавьте эту функцию как событие onclick= указанной кнопки, прямо в линию, чуть ниже фактической функции.

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

0
ответ дан 3 September 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: