这种事情的过程是:
- 确定要修改的内容的 HTML 结构。
- 添加或更改您的新内容。请注意,jQuery使它变得如此简单。
- 为您的新内容添加、修改和/或删除 javascript 事件侦听器。
- 如果目标内容是通过 AJAX 方法添加的,请使用AJAX 补偿技术。
对于您的示例页面:
使用Firebug检查显示Unanswered“按钮”HTML 如下所示:
<div class="nav mainnavs">
<ul>
...
<li>
<a href="/unanswered" id="nav-unanswered">Unanswered</a>
</li>
</ul>
</div>
所以我们将添加一个像这样的“按钮”:
<div class="nav mainnavs">
<ul>
...
<li>
<a href="/unanswered" id="nav-unanswered">Unanswered</a>
</li>
<li>
<a href="#" id="gmOurFirstButton">Log something</a>
</li>
</ul>
</div>
我们将使用jQuery 的.click()
.
对于这个页面和这个按钮,我们不需要担心AJAX。
将它们放在一起,一个完整的工作脚本如下所示:
// ==UserScript==
// @name _Add a simple button to a page
// @include https://stackoverflow.com/questions/ask*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
var unansweredBtn = $("#nav-unanswered");
//-- Add our button.
unansweredBtn.parent ().after (
'<li><a href="#" id="gmOurFirstButton">Log something</a></li>'
);
//-- Activate the button.
$("#gmOurFirstButton").click ( function () {
console.log ("Something.");
} );