JavaScriptで3つずつwindow.openをするコード

http://q.hatena.ne.jp/1328092654 
にて回答頂いたコードを改造したいと思っております。
変更点としましては、
・3つのリンクがある→9つのリンクがある
・1つずつwindow.openしていた→3つずつに(3つ同時にタブを開く→3つ閉じる→繰り返し)
・1+1+1だったのが3+3+3になったようなイメージです
以前のコードは上記リンクの回答欄に書いてあります。

9つのリンクは下記のような感じです。
>|html|
<li><a href="http://link1.com">リンク1</a></li>
~・・・
<li><a href="http://link9.com">リンク9</a></li>
||<
document.links、window.open、setTimeoutを使う方針は変わりません。
お手数おかけしますがご教授頂ければ幸いです

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/02/23 07:39:49
  • 終了:2012/02/23 09:26:38

ベストアンサー

id:TransFreeBSD No.1

TransFreeBSD回答回数662ベストアンサー獲得回数2642012/02/23 09:09:53

ポイント200pt

http://jsfiddle.net/xPDmr/2/

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript"><!--
var Index = 0;
var WaitSec = 10;     //待ち時間(秒)

function hogeOpenClose(wh) {
    if (wh && wh.close) {
        if (wh.closed) {
            // 既に閉じられていたら継続しない
            return;
        } else if (wh.close) {
            wh.close();
        }
    }
    // 次のオープン
    // javascriptではsetTimeout(イベント)が非同期にならないのでセマフォはいらない
    if (Index < document.links.length) {
        wh = window.open(document.links[Index++].href);
        // windowオブジェクトはクロージャーで保存するので幾らでも呼び出せる
        setTimeout(function(){hogeOpenClose(wh);}, WaitSec * 1000);
    }
}
function hoge() {
    //最初のオープン
    for (var i=0; i<3; i++) {
        // null(windowオブジェクト以外)で呼び出すとcloseせずにopenする→ウィンドウが増える
        hogeOpenClose(null);
        // 時間差も可能
        //setTimeout(hogeOpenClose, i*1000);
    }
}
--></script>
</head>
<body onLoad="hoge()">
<ol>
<li><a href="http://headlines.yahoo.co.jp/">yahooニュース</a></li>
<li><a href="http://news.google.co.jp/">googleニュース</a></li>
<li><a href="http://sankei.jp.msn.com/">msnニュース</a></li>
<li><a href="http://www.yahoo.co.jp/">yahoo</a></li>
<li><a href="http://www.google.co.jp/">google</a></li>
<li><a href="http://jp.msn.com/">msnニュース</a></li>
<li><a href="http://weather.yahoo.co.jp/">yahoo天気予報</a></li>
<li><a href="http://www.google.co.jp/#q=weather">google天気予報</a></li>
<li><a href="http://weather.jp.msn.com/">msn天気予報</a></li>
</ol>
</body>
</html>
id:ty2016

この度は回答ありがとう御座いました。
見事に完璧に動作致しました。本当にありがとうございます。

2012/02/23 09:27:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません