使用Firefox和Greasemonkey更改网站中的下拉选项

时间:2015-05-13 18:46:36

标签: javascript jquery firefox firefox-addon greasemonkey

我想更改我使用的网站下拉菜单中的选项,以便增加它在表格中显示的行数。由于我使用Firefox,我的想法是使用GreaseMonkey,但我遇到了麻烦,因为大多数资源是在backward-compatibility breaking GM 2.0 updatebecause jQuery is involved之前编写的,也是因为我的JS知识可以很好地适应销钉的头部。

Here's the full HTML code但相关的摘录如下。下拉代码:

<select onchange="set_pagination(this.value)">

    <option value="10"></option>
    <option value="20"></option>
    <option value="30"></option>
    <option value="40"></option>
    <option value="50" selected="selected"></option>

</select>

这里是set_pagination函数:

function set_pagination(val) {
        jQuery('#my_word_bank_div').fadeTo('fast', 0.5);
        jQuery.post("/learningcenter/account/set_pagination", {number_of_rows_perpage: val}, function(data){
            if(data.error == "") reload_table(1);
            else alert(data.error);
        }, "json");
    }

我重新定义函数的天真解决方案,但将val设置为常量(例如200)并不起作用,可能是由于我滥用unsafeWindow。我确实找到this similar request,但我不确定它是否适用。

1 个答案:

答案 0 :(得分:0)

好吧,我找到了答案。使用this answer获取指导,并学习有关using jQuery to access elements without an id以及by value的一些基础知识,我想出了以下简单的Greasemonky脚本:

// ==UserScript==
// @name        ZZZZ
// @namespace   http://www.example.com*
// @description Add dropdown option
// @include     http://www.example.com*
// @version     1
// @require     http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant       GM_getResourceText
// @grant       GM_addStyle
// @grant       GM_xmlhttpRequest
// @grant       GM_getResourceUR
// ==/UserScript==

var rowDropdownAddOption = $('[value=50]').after ('<option value="51">Show 51</option>');

这成功地添加了我之后的下拉选项,但是(SPOILER ALERT),当然服务器必须检查参数,并且拒绝任何&gt; 50。当然,这只是为了展示我在网络上所有事情上的天真。我认为这意味着它无法完成,除非有人可以提供其他解决方案。