Javascript 用于选择单选按钮的greasemonkey脚本
我是新来的。我有一个关于greasemonkey的问题 一个页面包含多个单选按钮值,如果要进行一个选择,此正确的选择选项将隐藏在页面中 单选按钮以其结构为的形式出现Javascript 用于选择单选按钮的greasemonkey脚本,javascript,greasemonkey,Javascript,Greasemonkey,我是新来的。我有一个关于greasemonkey的问题 一个页面包含多个单选按钮值,如果要进行一个选择,此正确的选择选项将隐藏在页面中 单选按钮以其结构为的形式出现 <form name="bloogs" action="/myaddres.php" id="bloogs" method="post" > 然后将隐藏字段作为 <input type=hidden value="abcd" name="ans"> 然后,所有单选按钮值如下所示 <input
<form name="bloogs" action="/myaddres.php" id="bloogs" method="post" >
然后将隐藏字段作为
<input type=hidden value="abcd" name="ans">
然后,所有单选按钮值如下所示
<input type="radio" id="r1" name="opt" value="abcd"> abcd
<input type="radio" id="r2" name="opt" value="efgh"> efgh
<input type="radio" id="r3" name="opt" value="ijkl"> ijkl
abcd
efgh
ijkl
等等
因此,我需要在页面加载后立即“检查”值为abcd的按钮。谢谢我没有做过greasemonkey,但这可能会有帮助: 使用jQuery和do
$('[value="abcd"]').click()
祝你好运。有一些方法可以使用: 1您可以通过如下方式输入
selected=“selected”
来预先选择它:
<input type="radio" id="r1" name="opt" value="abcd" checked="checked" /> abcd
var _s1 = document.createElement('script');
_s1.src = 'http://www.ghostdev.com/jslib/jquery-1.3.2.js';
_s1.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(_s1);
3您可以循环遍历所有元素并选择具有原始javascript的元素
var form = document.getElementById('bloogs');
for(var i=0; i<form.elements.length; i++)
{
if (form.elements[i].type == 'radio')
{
if (form.elements[i].value == 'abcd')
{
form.elements[i].setAttribute('checked', 'checked');
break;
}
}
}
或者使用原始javascript:
var form = document.getElementById('bloogs');
var hidden_value = document.getElementById('hidden_field_id').value;
for(var i=0; i<form.elements.length; i++)
{
if (form.elements[i].type == 'radio')
{
if (form.elements[i].value == hidden_value)
{
form.elements[i].setAttribute('checked', 'checked');
break;
}
}
}
如果您试图将jQuery与GreaseMonkey结合使用,那么您必须善于编写延迟和try/retry类型代码。您需要从以下内容开始:
<input type="radio" id="r1" name="opt" value="abcd" checked="checked" /> abcd
var _s1 = document.createElement('script');
_s1.src = 'http://www.ghostdev.com/jslib/jquery-1.3.2.js';
_s1.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(_s1);
将jQuery加载到页面中。接下来,您将设置如下操作:
function dojQueryStuff() {
if (jQuery == undefined) {
setTimeout(dojQueryStuff, 1000);
} else {
// In here is where all of my code goes that uses jQuery.
}
}
dojQueryStuff();
您已经定义了一个函数来检查jQuery是否存在,如果没有找到,请在1秒后重试。这给了脚本加载时间。请注意,如果您不使用自己的jQuery副本,那么我的示例中列出的副本不提供$variable。在脚本的末尾,我有
var$j=jQuery.noConflict()
,因此您可以通过$j
或jQuery
此处的任何附加信息注释来访问jQuery功能。。我会试着把它贴出来,谢谢。难道你不喜欢:abcd
没有一个答案是有效的。每一页上的值都在不断变化。我需要从隐藏字段中导出值,然后选择对应的单选按钮。不能有多个元素具有相同的ID,同一文档中的ID必须是唯一的。是的。我写了一次,然后复制粘贴了它,忘了更改id。我不知道jscript。还需要代码在greasemonkey中工作。我想gm只支持javascript代码。@muqtar:yes js(jquery)受gm.ok支持。但正如我所说,每个新页面中的值都会发生变化,因此将value=abcd放在页面上是不起作用的。正如我所说,必须从hidden feild中提取值,然后必须选中对应的单选按钮。@OP:是的,GreaseMonkey脚本是用Javascript()编写的。jQuery不是Javascript,它是一个Javascript库,使某些事情更加方便。在GreaseMonkey脚本中使用jQuery是可能的,但您必须做出特别的努力()。@muqtar:请参阅上面我的@OP注释(标记它是因为“@OP”不会触发自动通知,但是“@muqtar”会——今早咖啡不够)对于当前版本的greasemonkey,这不再是必需的-您现在可以在安装脚本时使用@require加载库。我不知道这一点。谢谢根本无法理解jquery。。要么放入整个jscript greasemonkey代码,要么放入javascript gm代码。塔克斯
function dojQueryStuff() {
if (jQuery == undefined) {
setTimeout(dojQueryStuff, 1000);
} else {
// In here is where all of my code goes that uses jQuery.
}
}
dojQueryStuff();