如何使用Greasemonkey自动选择单选按钮
How can I auto-select a radio button with Greasemonkey?
我想用Greasemonkey选择自动单选按钮。但我要选择标签名称的收音机。当我看到四个单选按钮时,Greasemonkey需要选择我的选项。示例:我想要自动选择标签Instagram。
<label for="ContentPlaceHolder1_answer3">Instagram</label>
如何使用Greasemonkey选择此单选按钮?
<div class="row">
<input type="radio" tabindex="3" value="answerswer1" name="ctl00$ContentPlaceHolder1$1" id="ContentPlaceHolder1_answer1"><label for="ContentPlaceHolder1_answer1">Twitpic</label></div>
<div class="row">
<input type="radio" tabindex="4" value="answerswer2" name="ctl00$ContentPlaceHolder1$1" id="ContentPlaceHolder1_answer2"><label for="ContentPlaceHolder1_answer2">Yfrog</label></div>
<div class="row">
<input type="radio" tabindex="5" value="answerswer3" name="ctl00$ContentPlaceHolder1$1" id="ContentPlaceHolder1_answer3"><label for="ContentPlaceHolder1_answer3">Instagram</label></div>
<div class="row">
<input type="radio" tabindex="6" value="answerswer4" name="ctl00$ContentPlaceHolder1$1" id="ContentPlaceHolder1_answer4"><label for="ContentPlaceHolder1_answer4">Flickr</label></div>
</div>
试试这个:
var label="whatever"; //The label you want to look for, you may already have some such variable
var allLabels=document.getElementsByTagName("label"); //Get all labels
for (var i=0;i<allLabels.length;i++) { //Loop through labels
if (allLabels[i].innerHTML.toLowerCase()==label) { //If a match is found...
allLabels[i].parentNode.getElementsByTagName("input")[0].checked=true; //Check the parent element for inputs (radio buttons, for instance), and check the first one
}
}
如果不知道HTML是如何组合在一起的,我无法确定这是否有效。你在问题中给出了HTML,但我不知道它是否保留了不变的格式。
我已经有一段时间没有使用xpath了,所以它可能什么都不做:)
但从理论上讲,这将搜索文本保持为"Instagram"的所有标签,然后在所有结果中循环,使用for属性来获取单选按钮,并将其设置为true。(尽管我认为它"选择"了单选按钮?)
function xpathSnapshot(expression,context) {
var r=document.evaluate(expression,context,null,6,null),i=r.snapshotLength-1;
this.iterate=function() {return r.snapshotItem(i--)}
}
var labels = xpathSnapshot("//label[contains(text(),'"Instagram'")]",document);
while (label = labels.iterate()) {
document.getElementById(label.getAttribute("for")).checked = true;
}
var labels = document.getElementsByTagName('label'); //get the labels
for (var i = 0; i < labels.length; ++i) { //loop through the labels
if (labels[i].textContent == "Instagram") { //check label text
labels[i].click(); //if correct text, click the label
}
}
相关文章:
- 如果选择单选按钮,则显示字段
- 选择单选按钮更新2个输入字段
- 如果选择单选按钮,则显示表单
- 选择单选按钮时显示更新按钮
- 选择单选按钮时显示或隐藏窗体
- 如何使用Greasemonkey自动选择单选按钮
- 如何通过单击选项而不是实际按钮本身来选择单选按钮
- JavaScript - 如果选中任何复选框,请选择单选按钮
- 无法在 jquery 中选择单选按钮
- 需要在选择单选按钮上启用提交按钮
- 取消选择单选按钮
- JavaScript-一旦选择单选按钮,就会删除以前的字段集
- 如何在加载时通过jQuery选择单选按钮
- AngularJs:默认情况下未选择单选按钮
- 我需要在选择单选按钮时显示一个下拉框
- 单击时取消选择单选按钮
- 选择单选按钮或下拉菜单项时自动更新PHP变量
- 如何在选择单选按钮后启用提交按钮
- 如何防止用户为每种情况选择单选按钮
- 使用 Json 如何根据数据库中的值选择单选按钮