скрипт greasemonkey для выбора переключателя - PullRequest
1 голос
/ 06 июня 2010

Я новичок здесь. У меня вопрос, связанный с greasemonkey.

Страница содержит несколько переключателей, и нужно сделать один выбор, этот правильный выбор скрыт внутри страницы

переключатели присутствуют в форме, структура которой

<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 была «проверена», как только страница загрузится. Спасибо

Ответы [ 3 ]

2 голосов
/ 06 июня 2010

Вы можете использовать несколько способов:

1 Вы можете предварительно выбрать его, введя selected="selected" следующим образом:

<input type="radio" id="r1" name="opt" value="abcd" checked="checked" /> abcd

2 Вы можете использовать jQuery , чтобы сделать это легко (я не знаю, будет ли это применимо с точки зрения greasmonky)

$(function(){
  $('input[value="abcd"]').attr('checked', 'checked');
});

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;
    }
  }
}

Обновление:

Это использует jquery и выбирает радио после чтения значения из скрытого поля:

$(function(){
  $('input[value="' + $('#hidden_field_id').val() + '"]').attr('checked', 'checked');
});

Или с необработанным 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;
    }
  }
}

Обновление 2:

Как следует из названия, вот как вы можете:

$(function(){
  $('input[value="' + $('input[name="ans"]').val() + '"]').attr('checked', 'checked');
});
0 голосов
/ 08 июня 2010

Если вы пытаетесь использовать jQuery с GreaseMonkey, вам придется хорошо писать отложенный код и пытаться / повторять код типа. Вам нужно начать с чего-то вроде этого:

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, та, что указана в моем примере, не предоставляет переменную $. В конце скрипта у меня есть var $j = jQuery.noConflict();, так что вы получите доступ к функциональности jQuery через $j или jQuery.

0 голосов
/ 06 июня 2010

Я не делал greasemonkey, но это может помочь:

используйте jQuery и сделайте

$('[value="abcd"]').click()

Удачи.

...