ホームページの作成について質問です。下記のような機能を「meta」か「JavaScript」で可能でしょうか?

・ページに入ったら○秒後に自動で指定したURLを別窓で開き、その開いた別窓ページを○秒後に自動で閉じたいです。
別窓で開く際、ウィンドウサイズも変更できればと思います。

若干わかりずらいかもしれませんが、よろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:2011/06/12 16:30:48
  • 終了:2011/06/13 10:20:03

ベストアンサー

id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492011/06/12 17:09:31

ポイント80pt

何度かチャレンジしてみたのですが、はてなの防衛機能が無駄に働いてScriptタグを消してしまうようなので、スクリプトの中身だけ書きますね

(オープンとクローズの二行で済んでしまいます)

setTimeout("w = window.open( 'URL', 'subWindow', 'width=300, height=200, menubar=no, toolbar=no, resizable=yes, scrollbars=yes' )", 5 * 1000 );
setTimeout("w.close()", 20 * 1000 );

URL

 ・よそのサイトならhttp://から書く

 ・自分のサイト内ならxx.htmlなどと書いてもOK

subWindow

 ・ここは適当に名前を付ければいいです

'width=300, height=200, menubar=no, toolbar=no, resizable=yes, crollbars=yes'

 ・幅や高さ、リサイズの許可などの細かな設定をします下記の「ページを開く」の項目が詳しいです

 http://www.tohoho-web.com/js/window.htm

5 * 1000

 ・単位がミリ秒なので5秒なら1000を掛けます

 ・5分なら 5 * 60 * 1000

 ・5000や300000と書いてもいいですけど、桁が増えると間違えやすいので60や1000を掛ける形にする人が多いです

 

ページに入ってから5秒後ではなくて、ページが表示されてから5秒後ということであれば、function xxx { 上記の2行をここに書く } としておいて <body oncload="xx">といった具合に呼び出すといいです

 

このような仕組みはポップアップと呼ばれていて宣伝広告などで広く使われていました

時には大量のポップアップを表示させてブラウザを使えない状態にしてしまうブラウザクラッシャー(通称ブラクラ)というものまで登場しました

宣伝もブラクラも迷惑なので今のブラウザはポップアップブロックという機能を標準装備して、ポップアップを表示しないような仕組みを構築しています

すなわち、学習という意味では有益ですが、もしも宣伝行為が目的であれば、それはブロックされてしまってほとんど意味を持たないものだと認識しておきましょう

id:numb08

ご丁寧にありがとうございます。無事できました。ただやはりポップアップブロックされてしまうことが多々あるようですね。それは仕方ないのであきらめます。ありがとうございました。

2011/06/13 10:19:07

その他の回答(2件)

id:ognad No.1

ognad回答回数102ベストアンサー獲得回数72011/06/12 16:59:10

ポイント76pt

<script type="text/javascript">
setTimeout(function() {
var o = window.open('about:blank', '', 'width=300, height=200');
setTimeout(function() {o.close()}, 3000);
}, 2000);
</script>

訂正しました。

JavaScriptで2秒後に空白ページを300x200で開いて、3秒後に閉じる例です。

1000=1秒なので、2000=2秒、3000=3秒になっています。

id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492011/06/12 17:09:31ここでベストアンサー

ポイント80pt

何度かチャレンジしてみたのですが、はてなの防衛機能が無駄に働いてScriptタグを消してしまうようなので、スクリプトの中身だけ書きますね

(オープンとクローズの二行で済んでしまいます)

setTimeout("w = window.open( 'URL', 'subWindow', 'width=300, height=200, menubar=no, toolbar=no, resizable=yes, scrollbars=yes' )", 5 * 1000 );
setTimeout("w.close()", 20 * 1000 );

URL

 ・よそのサイトならhttp://から書く

 ・自分のサイト内ならxx.htmlなどと書いてもOK

subWindow

 ・ここは適当に名前を付ければいいです

'width=300, height=200, menubar=no, toolbar=no, resizable=yes, crollbars=yes'

 ・幅や高さ、リサイズの許可などの細かな設定をします下記の「ページを開く」の項目が詳しいです

 http://www.tohoho-web.com/js/window.htm

5 * 1000

 ・単位がミリ秒なので5秒なら1000を掛けます

 ・5分なら 5 * 60 * 1000

 ・5000や300000と書いてもいいですけど、桁が増えると間違えやすいので60や1000を掛ける形にする人が多いです

 

ページに入ってから5秒後ではなくて、ページが表示されてから5秒後ということであれば、function xxx { 上記の2行をここに書く } としておいて <body oncload="xx">といった具合に呼び出すといいです

 

このような仕組みはポップアップと呼ばれていて宣伝広告などで広く使われていました

時には大量のポップアップを表示させてブラウザを使えない状態にしてしまうブラウザクラッシャー(通称ブラクラ)というものまで登場しました

宣伝もブラクラも迷惑なので今のブラウザはポップアップブロックという機能を標準装備して、ポップアップを表示しないような仕組みを構築しています

すなわち、学習という意味では有益ですが、もしも宣伝行為が目的であれば、それはブロックされてしまってほとんど意味を持たないものだと認識しておきましょう

id:numb08

ご丁寧にありがとうございます。無事できました。ただやはりポップアップブロックされてしまうことが多々あるようですね。それは仕方ないのであきらめます。ありがとうございました。

2011/06/13 10:19:07
id:TransFreeBSD No.3

TransFreeBSD回答回数664ベストアンサー獲得回数2662011/06/12 18:13:03

ポイント76pt

最初のページで開いて閉じる事も出来ますが、閉じる前に別ページに行ったり、ポップアップブロックの表示で許可などの操作を行っていると、自動では閉じなくなります。

ですので、できるなら最初のページに開く方のスクリプト、別窓ページに閉じるスクリプト、と分けて書いておいた方がよいです。具体的には最初に開くページで

<html><head><script type="text/javascript">
setTimeout(function(){
    open("subwindow.html", "_blank", "width=420,height=230");
}, 3000);
</script></head><body>open subwindow</body></html>

として、subwindow.htmlを

<html><head><script type="text/javascript">
setTimeout(function(){
    close()
}, 5000);
</script></head><body>subwindow</body></html>

とします。

ただし、人によってはまったく開かなかったり、違うサイズで開いたり、閉じなかったりする事もありますので、大事なことであれば、その旨は書いた方が良いです。

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

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

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

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

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