・ページに入ったら○秒後に自動で指定したURLを別窓で開き、その開いた別窓ページを○秒後に自動で閉じたいです。
別窓で開く際、ウィンドウサイズも変更できればと思います。
若干わかりずらいかもしれませんが、よろしくお願いします。
何度かチャレンジしてみたのですが、はてなの防衛機能が無駄に働いて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">といった具合に呼び出すといいです
このような仕組みはポップアップと呼ばれていて宣伝広告などで広く使われていました
時には大量のポップアップを表示させてブラウザを使えない状態にしてしまうブラウザクラッシャー(通称ブラクラ)というものまで登場しました
宣伝もブラクラも迷惑なので今のブラウザはポップアップブロックという機能を標準装備して、ポップアップを表示しないような仕組みを構築しています
すなわち、学習という意味では有益ですが、もしも宣伝行為が目的であれば、それはブロックされてしまってほとんど意味を持たないものだと認識しておきましょう
<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秒になっています。
何度かチャレンジしてみたのですが、はてなの防衛機能が無駄に働いて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">といった具合に呼び出すといいです
このような仕組みはポップアップと呼ばれていて宣伝広告などで広く使われていました
時には大量のポップアップを表示させてブラウザを使えない状態にしてしまうブラウザクラッシャー(通称ブラクラ)というものまで登場しました
宣伝もブラクラも迷惑なので今のブラウザはポップアップブロックという機能を標準装備して、ポップアップを表示しないような仕組みを構築しています
すなわち、学習という意味では有益ですが、もしも宣伝行為が目的であれば、それはブロックされてしまってほとんど意味を持たないものだと認識しておきましょう
ご丁寧にありがとうございます。無事できました。ただやはりポップアップブロックされてしまうことが多々あるようですね。それは仕方ないのであきらめます。ありがとうございました。
最初のページで開いて閉じる事も出来ますが、閉じる前に別ページに行ったり、ポップアップブロックの表示で許可などの操作を行っていると、自動では閉じなくなります。
ですので、できるなら最初のページに開く方のスクリプト、別窓ページに閉じるスクリプト、と分けて書いておいた方がよいです。具体的には最初に開くページで
<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>
とします。
ただし、人によってはまったく開かなかったり、違うサイズで開いたり、閉じなかったりする事もありますので、大事なことであれば、その旨は書いた方が良いです。
ご丁寧にありがとうございます。無事できました。ただやはりポップアップブロックされてしまうことが多々あるようですね。それは仕方ないのであきらめます。ありがとうございました。