自動でコレって書いてあるリンクだけ押して、onmousedown処理をするにはどうしたらよいでしょうか

このQ&Aのポイント
  • <A onmousedown="Part('0384',true);" href="javascript:id(0);">あ</A> <A onmousedown="Part('r357',true);" href="javascript:id(0);">コレ</A> <A onmousedown="Part('erjl',true);" href="javascript:id(0);">あ</A> <A onmousedown="Part('alea',true);" href="javascript:id(0);">コレ</A>というリンクがあります。自動で"コレ"と書いてあるリンクだけをクリックしたい場合、どのようにすれば良いでしょうか?
  • var atag=document.links; for (i in atag) { kore = atag[i].innerText; if (kore=="コレ") { atag[i].onmousedown(); } } と試しましたが、うまくいきませんでした。マウスダウンイベントをjavascriptで発生させる場合、どのようにすれば良いですか?
  • 繰り返し処理は別として、マウスダウンイベントをjavascriptで発生させる方法を教えてください。
回答を見る
  • ベストアンサー

onmousedownを自動で押して、イベントを処理するには

某ページにて、以下のようなhtmlがあります。 <A onmousedown="Part('0384',true);" href="javascript:id(0);">あ</A> <A onmousedown="Part('r357',true);" href="javascript:id(0);">コレ</A> <A onmousedown="Part('erjl',true);" href="javascript:id(0);">あ</A> <A onmousedown="Part('alea',true);" href="javascript:id(0);">コレ</A> 自動でコレって書いてあるリンクだけ押して、 onmousedown処理をするには、どうしたらよいでしょうか。 var atag=document.links; for (i in atag){ kore = atag[i].innerText; if(kore=="コレ"){ atag[i].onmousedown(); } } とやると、どうも違うようで。。 繰り返し処理は、おいといて、 マウスダウンをjavascriptで押させる場合、どのようにしたらよいか だけでも、教えて頂けると・・・ すみません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

https://developer.mozilla.org/en/DOM/element.dispatchEvent これの応用 http://www.w3.org/TR/DOM-Level-3-Events/#event-type-mousedown #俺はこの手のやつってmousedownとかclickじゃなくてDOMActivateだと思うんだけどねぇ(HTML4.01の属性には、このイベントを設定するのないし、 #http://dev.w3.org/html5/spec/Overview.html#htmlelement やっぱりねぇや。XFormsが普及してほしかったなぁ…

j-mika
質問者

お礼

応用をお調べ下さって、ありがとうございました。 参考にしてみます。 とりあえず、元々ので動きました。 (動作が変だったのは、そのサイトがonmousedownで、リンクを どんどん消してしまう仕様で、iの順番が狂ったようでした。) お騒がせ致しました。 頂いたお時間に感謝です。

関連するQ&A

  • スクリプトで<div id="links">

    下記スクリプトで<div id="links"></div>のところを 開いた瞬間 <ul> <li><a href="http://foo.com/">foo</a></li> <li><a href="http://bar.com/">bar</a></li> </ul> に変換したいのですがうまくいきません どこをどのように変更すれば変換されるのでしょうか 【スクリプト】 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script type="text/javascript"> var URL = new Array("http://foo.com/","http://bar.co.jp/"); var TITLE = new Array("foo","bar"); // 表示用コンテナ var container = document.getElementById('links'); // リセット container.innerHTML=''; var ul=document.createElement('ul'); container.appendChild(ul); for(var i=0;i<URL.length;i++){ var li=document.createElement('li'); var a=document.createElement('a'); // 'href'属性の設定 a.setAttribute('href',URL[i]); // ラベル a.appendChild(document.createTextNode(TITLE[i])); li.appendChild(a); ul.appendChild(li); } </script> </head> <body> <div id="links"></div> </body> </html>

  • Aタグを文字ではなくタグとして認識させたい…

    http://okweb.jp/kotaeru.php3?q=1422320でリンクをクリックすると押せなくなる処理を作りました。 しかし新たな問題が… 以下はソースです。 function linkcontrol(linkno) {  switch(linkno){   case 1:    slink1.innerText ='LINK1';    slink2.innerText ='<a href="javascript:linkcontrol(2)">LINK2</a>';    slink3.innerText ='<a href="javascript:linkcontrol(3)">LINK3</a>';    break;   case 2:    slink1.innerText ='<a href="javascript:linkcontrol(1)">LINK1</a>';    slink2.innerText ='LINK2';    slink3.innerText ='<a href="javascript:linkcontrol(3)">LINK3</a>';    break;   case 3:    slink1.innerText ='<a href="javascript:linkcontrol(1)">LINK1</a>';    slink2.innerText ='<a href="javascript:linkcontrol(2)">LINK2</a>';    slink3.innerText ='LINK3';    break;  } } //BODY部 <span id="slink1"><a href="javascript:linkcontrol(1)">LINK1</a></span> <span id="slink2"><a href="javascript:linkcontrol(2)">LINK2</a></span> <span id="slink3"><a href="javascript:linkcontrol(3)">LINK3</a></span> 上記の処理だと、リンクはクリックできなくなったのですが、他のリンクがリンクにならず文字で<a href~と書かれてしまいます。 これをきちんと文字ではなくタグとして認識させるには、どのような修正をすれば良いのでしょうか。 アドバイスお願いします。 ※そもそもこのソースはあまりよろしくない書き方のような気もします。 ※もしもっと簡単に行える書き方がありましたらそちらも併せてアドバイスをお願いします。

  • javascriptによる動的なリンクの変更

    javascriptによって、ラジオボタンをチェックする度に(チェックを変える度に) 動的にリンクを変更したいのですが、上手くいきません。 すみませんが、どなたか教えていただけないでしょうか? ちなみに、下記は私が試したコードです。(全く動きませんが。) ラジオボタンのチェックを変えると、<a>タグのhrefの中身のURLが、そのボタンのvalueに対応して変わるようにしたいのですが。。 <FORM NAME="sample"> 選択して下さい -->  <input type="radio" name="list" OnChange="UpdateLink()" value="http://www.yahoo.co.jp" />s <input type="radio" name="list" OnChange="UpdateLink()" value="http://www.vector.co.jp/authors/VA011407/" />m <input type="radio" name="list" OnChange="UpdateLink()" value="mailto:akirayu@a2.mbn.or.jp" />l <A href="samplelink">リンク更新!!</A> </FORM> <SCRIPT LANGUAGE="JavaScript"> <!-- var pos; for(var i=0; i < document.links.length; i++) { if (document.links[i].href.indexOf("samplelink") != -1) pos = i; } function UpdateLink() { checked = document.sample.list.checked Index; document.links[pos].href = document.sample.list[checked ].value; } //--> </SCRIPT>

  • リンク一覧の表示

    <SCRIPT language="JavaScript"> <!-- function ShowLinks(){ var msg = "リンクの一覧:<BR>"; for(i=0; i < document.links.length; i++){ msg = msg + "<A href=" + document.links[i] + ">" + document.links[i] + "</A><BR>"; } var new1 = window.open('','new1', 'toolbar=1, location=1, status=1, menubar=1, scrollbars=yes, resizable=1, width=650, height=800'); new1.document.write(msg); new1.document.close(); } //--> </SCRIPT> 下記のように表示されるのを リンクの一覧: http://***.ne.jp/bbns.cgi http://***.ne.jp/abc.cgi 下記のように番号を付けて表示したいのですが リンクの一覧: 0:http://***.ne.jp/bbns.cgi 1:http://***.ne.jp/abc.cgi

  • これをOperaでも動くようにしたい

    http://programming-magic.com/?id=158 こちらの function(){ var l = document.getElementsByTagName("A"); for(var i=0; i<l.length; i++){ var a = l[i]; if(a.href.indexOf('javascript:',0)){ var e = /*@cc_on!@*/0; if(e){//IE専用 a.href = 'javascript: (function(){location.href = "'+a.href+'";})();'; } else{//Firefox、Opera、Safari a.href = 'data:text/html;charset=utf-8,'+encodeURIComponent('<script type="text/javascript"><!--\ndocument.write(\'<meta http-equiv="refresh" content="0;url='+a.href+'">\');// --><'+'/script>'); } } } } を、Operaでも動くようにできませんでしょうか

  • JSONPを処理するにはどうすればいいですか?

    http://www.baldanders.info/spiegel/remark/archives/000222.shtml このページの下部のサンプルスクリプトを function getjsonp(url){ で囲ってurlを渡してJSONPデータを処理しようとしたのですが、 hundler is not defined とエラーが出てしまいます。 サンプルスクリプトのそのままのコードでは動くのです。 オブジェクト指向がよくわかっていないのでどうすればいいか、識者の方教えてください。 宜しくお願いします。 下記がエラーするスクリプトです。 <script type="text/javascript" src="/js/jsr_class.js"></script> <div id="bookmark"></div> <script type="text/javascript"> var url ='http://del.icio.us/feeds/json/spiegel?callback=hundler'; getjsonp(url); function getjsonp(url){ var oJsr = new JSONscriptRequest(url); oJsr.buildScriptTag(); oJsr.addScriptTag(); function hundler(data) { var ul = document.createElement('ul'); for (var i=0, post; post = data[i]; i++) { var li = document.createElement('li'); var a = document.createElement('a'); a.setAttribute('href', post.u); a.appendChild(document.createTextNode(post.d)); li.appendChild(a); ul.appendChild(li); } document.getElementById('bookmark').appendChild(ul); oJsr.removeScriptTag(); } } </script>

  • javascript マウスイベント

    動的に生成したテーブルのマウスイベントについてご質問します。 var body = document.getElementsByTagName("body")[0]; var tbl = document.createElement("table"); var tblBody = document.createElement("tbody"); for (var j = 0; j < 20; j++) { var row = document.createElement("tr"); for (var i = 0; i < 1; i++) { var cell = document.createElement("td"); var cellText = document.createTextNode("cell is row "+j+", column "+i); cell.id="dt1"; cell.height="15" cell.appendChild(cellText); row.appendChild(cell); } tblBody.appendChild(row); } tbl.id="tbl1"; tbl.width="200" tbl.appendChild(tblBody); body.appendChild(tbl); 上記のようなソースでテーブルを作成しています。 tbl.onmousedown このあたりだと思うのですが、記述方法がわからず困っています。 具体的には下記のような動きを目指してます。 http://www.programming-magic.com/20071215024226/ 初歩的な質問かもしれませんが、ご教授頂けると幸いです。

  • イベントリスナーに設定した関数内で、id属性の値を取得するには

    IEでイベントリスナーに設定した関数で、イベントを発生させた要素のid属性値を取得する方法が分からずに困っています。 記述したコードは下記のようになります。Firefoxではうまく動作しました。 clickHandler内でFirefoxのe.currentTarget.idに対応するような処理はどのように行えばよいでしょうか。 ------------ JavaScript部分 ----------------------- function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true; } else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r; } else { elm['on' + evType] = fn; } } function clickHandler(e) { var id; if (document.all && !window.opera) { // IEの場合に、ここの処理でid属性の属性地 hoge1やhoge2を取得したい。 // id = window.event.srcElement.id; これではだめ } else { id = e.currentTarget.id; } // idに応じた処理 } var elm1 = document.getElementById('hoge1'); var elm1 = document.getElementById('hoge2'); addEvent(elm1,'click',clickHandler,false); addEvent(elm2,'click',clickHandler,false); ------------ HTML部分 ----------------------- <li><a id="hoge1" href="#"><img src="●●" /></a></li> <li><a id="hoge2" href="#"><img src="●●" /></a></li> 先に進むことができずに困っています。よろしくお願いします。

  • 三菱東京UFJ銀行に自動ログインしたいのですが

    どうもうまくできません。 ログインボタンが押せません。 Sub tset() Dim objIE As Object Dim i As Long Set objIE = CreateObject("InternetExplorer.Application") objIE.navigate "https://entry11.bk.mufg.jp/ibg/dfw/APLIN/loginib/login?_TRANID=AA000_001" objIE.Visible = True Do While objIE.Busy = True DoEvents Loop With objIE.document .all("KEIYAKU_NO").Value = "test" .all("PASSWORD").Value = "PASSWORD" End With For i = 0 To objIE.document.Links.Length - 1 If objIE.document.Links(i).innerHTML Like "*alt=ログイン*" Then objIE.document.Links(i).Click Exit For End If Next i For i = 0 To objIE.document.Links.Length - 1 If objIE.document.Links(i).innerText = "ログイン" Then objIE.document.Links(i).Click Exit For End If Next i End Sub でも、押せないのですが、ご教授いただけませんか? よろしくお願いします。

  • VBAでJAVAをコントロール

    javascriptのリンクが、<a href="javascript:void(0);">なんたらかんたら</a> であれば記載のソースが通じるのですが、 【今回の問題】 【html部分】 onclick="javascript:updateDisp();return false;" alt="なんたらかんたら"><input type="hidden" name="allupdate" value="なんたらかんたら"> 【javascriptの部分】 function updateDisp(){ update_flg = window.confirm("なんたらかんたら"); if(update_flg == true){ document.updateForm.submit(); } else{ alert("キャンセルしました。"); } とやられた途端に全く通じなくなりました。 どのように回避したらよいでしょうか。 【今回のではなく前回の(javascript:void(0);)成功分】 Private Sub CommandButton99_Click() Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://xxxx/entry" Do While objIE.Busy = True DoEvents Loop Application.Wait (Now + TimeValue("00:00:03")) objIE.Document.all("ShopShopId").Value = Range("C8") objIE.Document.all("ShopPassword").Value = Range("C9") objIE.Document.forms(0).submit Application.Wait (Now + TimeValue("00:00:05")) For Each Obj In objIE.Document.getElementsByTagName("a") If Obj.innerText = "なんたらかんたら" Then Obj.Click Exit For End If Debug.Print objIE.LocationURL objIE.Navigate "xxxx/entry/entry_tops/all_update?prm=xxxxxxxxxxxxxxxxxxxxxxx" For i = 0 To objIE.Document.Links.Length - 1 If objIE.Document.Links(i).href = "javascript:void(0);" Then Application.Wait (Now + TimeValue("00:00:05")) objIE.Document.Links(i).Click Application.Wait (Now + TimeValue("00:00:05")) Exit For MsgBox "ループ抜け" End If Exit Sub Next Next objIE.Quit End Sub 上記は【今回の問題】に通じません。 'objIE.Navigate.Document.updateForm.fireEvent ("なんたらかんたら") 'objIE.Document.Script.updateDisp "javascript:document.updateForm.submit(true);" など試行錯誤しておりますが、javascriptのポップアップが回避できません。 どなたか何とかご教授お願いいたします。

専門家に質問してみよう