我想更改我使用的网站下拉菜单中的选项,以便增加它在表格中显示的行数。由于我使用Firefox,我的想法是使用GreaseMonkey,但我遇到了麻烦,因为大多数资源是在backward-compatibility breaking GM 2.0 update,because 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,但我不确定它是否适用。
答案 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。当然,这只是为了展示我在网络上所有事情上的天真。我认为这意味着它无法完成,除非有人可以提供其他解决方案。