- ベストアンサー
fc2を使って家族でホームページを作ってるのですが
クリックすると、2つのサイトがそれぞれ、新しいウィンドウで開くようにしたいです。 一つは、毎回同じサイトが開きますが、もう一つは、5つくらいのサイトからランダムで開くようにする事は可能でしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
IE8 とは、Windows に無料でついてくる(?)、Internet Explorer のバージョン8を指します。 古いバージョンに対応させるのが面倒で・・・。 IE9 になると、addEventListener にオブジェクトを渡すことができるようになりました。 ノードをいわゆるクロージャーにして呼び出す必要がなくなります。 すっきりとした書き方で、凄く気に入っています。 querySelector も、すっきりしています。 結局、IEに対応させるために、正規表現も変えました。 (ちょっと質問者には関係ありませんが、ひらがなで解答すると「迷惑怪答」なのか?笑えるぜぇ~!) <!DOCTYPE html> <title></title> <style type="text/css"> </style> <p><a href="#LIST-1">HOGE</a></p> <ul id="LIST-1" style="display:none"> <li><a href="defult.html">...</a></li> <li><a href="1.html">...</a></li> <li><a href="2.html">...</a></li> <li><a href="3.html">...</a></li> </ul> <script type="text/javascript"> //@cc_on var doubleLink = { mark_reg : /#(LIST-\d+)$/, jump : function (a) { var len = a.length; var no2 = 1 + Math.floor (Math.random () * (len - 1)); window.open (a[0].href, '_blank'); window.open (a[no2].href, '_blank'); }, handleEvent : function (event) { var e = event./*@if (@_jscript_version <= 5.8) srcElement @else@*/ target /*@end@*/; var m; var a; if ('href' in e) if (m = e.href.match (this.mark_reg)) if (a = e.ownerDocument.getElementById (m[1]).getElementsByTagName ('a')) this.jump (a); } } document. /*@if (@_jscript_version <= 5.8) attachEvent ('onclick', function (evt) { doubleLink.handleEvent.call (doubleLink, evt); }); /*@else@*/ addEventListener ('click', doubleLink, false); /*@end@*/ </script>
その他の回答 (3)
- babu_baboo
- ベストアンサー率51% (268/525)
ついでに、 No1の回答した時点で、指摘を受けました。 『JavaScript は「リンクの振る舞い」を制御できても、 「リンクそのもの」を表すことができません』と。 マークアップとしてのHTMLは、<a>タグで、複数のリンクを指定することができません。 スクリプトの動かない環境ならば尚更、その道しるべとなるようにマークアップを工夫しなければなりません。 まず複数のリンク先をリスト構造にして、そこを示すようにリンクを張ります。 その上で、スクリプトの力を借りて複数開きます。 私を含め、そういう基本に基づいて HTML を書こうとするひとは、少ないですね。 日々反省。
- babu_baboo
- ベストアンサー率51% (268/525)
#1 ですが、さっきのコードと ie8 以下をする~して、こちら。 ぜんかくくうはくは、はんかくに。 <!DOCTYPE html> <title></title> <style type="text/css"> ul[id^="LIST-"] { display: none; } </style> <p><a href="#LIST-1">HOGE</a></p> <ul id="LIST-1"> <li><a href="default.html">...</a></li> <li><a href="0.html">...</a></li> <li><a href="1.html">...</a></li> <li><a href="2.html">...</a></li> </ul> <script> var doubleLink = { mark_reg : /(#LIST-\d+)$/, jump : function (a) { var len = a.length; var no2 = 1 + Math.floor (Math.random () * (len - 1)); window.open (a[0].href, '_blank'); window.open (a[no2].href, '_blank'); }, handleEvent : function (event) { var e = event.target; var m; var a; if ('href' in e) if (m = e.href.match (this.mark_reg)) if (a = e.ownerDocument.querySelectorAll (m[1] + ' a')) this.jump (a); } } document.addEventListener ('click', doubleLink, false); </script>
- babu_baboo
- ベストアンサー率51% (268/525)
<a href="default.html" target="_blank" onclick=" var url = ['0.html','1.html', '2.html']; window.open (url[Math.random()*url.length|0], '_balnk'); ">open</a> /* <a href="default.html" target="_blank" onclick="with (['0.html','1.html','2.html'])window.open([Math.random()*length|0],'_balnk');">open</a> */
補足
ありがとうございます。本当に素人なんで、コピペして、いろいろ試したんですが、できませんでした。 コピペの仕方が間違ってるのだとおもいますが、、、 ie8とは何でしょうか、何度もすみませんが、諦めたくないんで、よろしくお願いします。