gpt4 book ai didi

javascript - 如何注入(inject)一个执行函数的按钮?

转载 作者:行者123 更新时间:2023-12-02 18:59:29 30 4
gpt4 key购买 nike

我在使用 Greasemonkey 和 Firefox javascript 注入(inject)一个按钮时遇到了真正的困难,该按钮在选择时将执行一个功能。

例如,我尝试将该按钮放置在 the SO "Ask a Question" page 上的“未答复”按钮之后。 .

我希望它运行一个可以执行任何操作的函数,例如 alert ("Hello World")console.log('TEST start') ,例如。

有人可以发布一些示例代码来完成这项工作吗?一旦我有了工作样本,我就可以从那里开始。

提前非常感谢。

最佳答案

这种事情的流程是:

  • 确定要修改的内容的 HTML 结构。
  • 添加或更改您的新内容。请注意jQuery让事情变得更加容易。
  • 为您的新内容添加、修改和/或删除 JavaScript 事件监听器。
  • 如果目标内容是通过AJAX方法添加的,则使用AJAX-compensating techniques .
  • 对于your example page :

    使用 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's .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.");
    } );

    关于javascript - 如何注入(inject)一个执行函数的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948575/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com