2010-05-24 52 views
1

我有一个书签,点击书签包括一个PHP脚本(作为一个JavaScript文件评估)到页面几个表值和选择值作为GET参数传递。 PHP脚本将页面数据写入MySQL数据库,并输出一个被视为JavaScript代码并由浏览器执行的成功消息。有没有可能使用greasemonkey做到这一点,并在网页上点击现有的按钮时调用此函数。greasemonkey insert javascript

我写了本教程启发的上述小书签。

http://tutorialzine.com/2010/04/simple-bookmarking-app-php-javascript-mysql/

这是书签代码:

(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); 
})(); 

请帮助我。

回答

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;   \ 
    }            \ 
    ' 
); 
0

使这是一个实际的命名函数,而不是一个闭包(在Greasemonkey脚本中),然后将该函数作为所述按钮的onclick =事件添加,直接内联就在实际函数的下方。

尽管劫持预先存在的网页按钮并不安全,也不是官方的祝福方法 - 将它连接到Greasemonkey Menu Command并从那里启动它(右键单击菜单的小猴子图标)。