2012-03-12 11 views
1

私はラジオボタンを自動選択するためにGreasemonkeyスクリプトを実行しようとしています。投票には2つのイメージがあり、1つのイメージをクリックすると、オプションが選択され、CAPTCHAボックスが有効になります。写真ラジオボタンを自動選択する方法は?

希望の画像を自動選択する方法があるかどうかを知りたいと思います。私は.click().checkedのようないくつかのコマンドを成功裏に試しました。ここで

は、世論調査から(部分)ソースHTMLである:

<fieldset> 
<legend>Validação de voto</legend> 
<div class="box-votacao"> 
    <ul class="duplo-lateral clearFix" id="participantes"> 

     <li class="off"> 
      <div class="foto"> 
       <a href="#"> 
        <img class="foto-chamada" src="http://s.glbimg.com/et/bb/f/original/participantes/joao_carvalho_360x300.png" alt="João Carvalho"> 
        <div class="selecionado"></div> 
        <p class="bloco-01 off"> 
         <input name="opt" id="opt" value="1" type="radio"> 
         <strong class="nome">João Carvalho</strong> 
        </p> 
       </a> 
      </div> 
      <p class="legenda">Para votar em João Carvalho, disque 0303 108 8401 ou envie um SMS para 88401</p> 
     </li> 
     <li class="off ultimo"> 
      <div class="foto"> 
       <a href="#"> 
        <img class="foto-chamada" src="http://s.glbimg.com/et/bb/f/original/participantes/yuri_360x300.png" alt="Yuri"> 
        <div class="selecionado"></div> 
        <p class="bloco-01 off"> 
         <input name="opt" id="opt" value="2" type="radio"> 
         <strong class="nome">Yuri</strong> 
        </p> 
       </a> 
      </div> 
      <p class="legenda">Para votar em Yuri, disque 0303 108 8402 ou envie um SMS para 88402</p> 
     </li> 

    </ul> 
</div> 
<div class="validacao clearFix noBorder"> 
    <div id="desabilitado"></div> 
    <ul> 
     <li> 
      <img id="captcha" title="seguranca" /> 
     </li> 
     <li class="digitar-codigo"> 
      <input name="answer" type="text" /> 
      <p id="erro" class="erro"><span>Erro!</span> <span class="erro-txt">Texto incorreto. Tente novamente.</span></p> 
     </li> 
     <li class="botao"> 
      <span><input name="votar" type="submit" class="submit" value="votar"/></span> 
     </li> 
    </ul> 
</div> 
</fieldset> 

答えて

0

スクリプトがクリックした画像を決定どのように?

さらにですか?それが動作しない場合

var targImage = document.querySelector ("div.box-votacao img.foto-chamada[alt='João Carvalho']"); 
var clickEvent = document.createEvent ('MouseEvents'); 
clickEvent.initEvent ('click', true, true); 
targImage.dispatchEvent (clickEvent); 


、それは国民の場合は、目的のページへのリンクを投稿...かの保存したスナップショットへのリンク:このような何かが動作するはずです、それが真実であると仮定すると、公開されていない場合はjavascriptを含むページ



更新は、今やそのthe target pageが与えられています。

そのページは少しトリッキーです。ちょうどクリック以上のものが必要です。また、ページを調べると、クリックされた画像ではなく、それを含むクリックハンドラーが<li>となります。クリックすると、いくつかのJSの組み合わせで、次のように動作するようにテストされていますので、

、:

//--- Click the link and list-item associated with the desired image. 
var targImg  = document.querySelector ("div.box-votacao img.foto-chamada[alt='João Carvalho']"); 
targLink  = targImg.parentNode; 
targListItem = targImg.parentNode.parentNode.parentNode; 

clickNode (targListItem); 

var ps   = unsafeWindow.ps; 
for (var j in ps) { 
    if (ps[j].className) { 
     ps[j].className = ps[j].className.replace ("on", "off"); 
    } 
} 
targListItem.className = targListItem.className.replace ("off", "on"); 
targListItem.getElementsByTagName ("input")[0].checked = "true"; 

var captchaBox = document.querySelector ("#desabilitado"); 
if (captchaBox) { 
    captchaBox.id = "habilitado"; 
} 


function clickNode (targNode) { 
    var clickEvent = document.createEvent ('MouseEvents'); 
    clickEvent.initEvent ('click', true, true); 
    targNode.dispatchEvent (clickEvent); 
} 


最後に、このページはGreasemonkeyのようなスクリプトを阻止するように設計されている可能性があります。もしそうなら、あなたのスクリプトはサービス規約に違反しているかもしれません(ポルトガル語をあまり読んでいないので、私はそれらを探しませんでした)。そして、彼らはこのスクリプトを破棄するための対策を取るかもしれません。

+0

最後のコード私は試しました: 'code' var name = document.getElementsByClassName( 'foto-chamada'); 名前[i] .click(); 'code' 私は投票する人に応じて[i]を変更します 私はあなたのコードを試しましたが、うまくいきませんでした。こちらはリンクですhttp://tvg.globo.com/bbb/bbb12/votacao/291.html – Comentarist

+0

投票は今日から外されます。見送る前にオフになっている場合は、こちらがスナップショットです。一旦ページがhttp://i43.tinypic.com/29kq82o.pngにロードされると、オプションはhttp://i40.tinypic.com/5n4okm.pngコードでペーストされます。pastebin.com/raw.php?i= 98V7eMA6 thx in advance – Comentarist

+0

そのページとそのコードを調べた後、私はその答えを更新しました。ページデザインは基本的なアンチスクリプト策*が組み込まれている可能性があることを示唆しています。このコードを適用する可能性のある法律や利用規約に違反するためにこのコードを使用しないでください。 –

関連する問題