人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javascriptで一定時間おきに移動するには
a.htmlに3つのリンクが張られているとします
【a.html】
<html><body>
<a href="http://headlines.yahoo.co.jp/">yahooニュース</a>
<a href="http://news.google.co.jp/">googleニュース</a>
<a href="http://sankei.jp.msn.com/">msnニュース</a>
</body></html>

この3つをdocument.links[0?2].click()を使って新しいタブで開く→閉じるという処理をします。
(ただし、一度に開けるタブは1つとします。【開く→閉じる】の処理の後に次のサイトを【開く→閉じる】をします)
yahooニュースを10秒見たらgoogleニュースを10秒見る といった感じです。
◆方針◆
・window.openとwindow.closeを使う
・document.links[0].click()を使う
・setTimeout等で10秒待つ

私の力では上手くコードが書けないのでご教授頂けますか?

●質問者: ty2016
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● oil999
●200ポイント ベストアンサー

コメントいただきましたように、document.links[]を使うように改めました。

しかし、document.links[].click() を使う手順(タイミング)が分かりません。
お手数ですが、下記スクリプトを実行し、ご指示ください。

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

function hogeClose() {
Wh.close();
Index++;
//次のオープン
if (Index < document.links.length) {
Wh = window.open(document.links[Index].href);
setTimeout(hogeClose, WaitSec * 1000);
} else {
clearTimeout();
}
}
function hoge() {
//最初のオープン
if (Index == 0) {
Wh = window.open(document.links[Index].href);
setTimeout(hogeClose, WaitSec * 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>
</ol>
</body>
</html>

ty2016さんのコメント
お世話になります。 コード自体は動作するのですが 【URLを配列に入れる】→【window.open】ではなく、 a.html内にある既存のリンクに対して document.links[1].click()を使いたいのです。 そこでdocument.links[1].click()が必要になってきます。

ty2016さんのコメント
説明不足でしたので補足です a.html内で動作するjavascriptという形になります

oil999さんのコメント
コメントいただきましたように、回答のスクリプトを書き換えてみました。 しかし、document.links[].click() を使う手順(タイミング)が分かりません。 お手数ですが、下記スクリプトを実行し、ご指示ください。

ty2016さんのコメント
この度はありがとうございました。 無事、目的を果たすことができました。 本当に素晴らしい回答だと思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ