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

ホームページの作成について質問です。下記のような機能を「meta」か「JavaScript」で可能でしょうか?
・ページに入ったら○秒後に自動で指定したURLを別窓で開き、その開いた別窓ページを○秒後に自動で閉じたいです。
別窓で開く際、ウィンドウサイズも変更できればと思います。

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

●質問者: numb08
●カテゴリ:コンピュータ インターネット
✍キーワード:JavaScript URL ウィンドウ サイズ ホームページ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ognad
●76ポイント

<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秒になっています。


2 ● うぃんど
●80ポイント ベストアンサー

何度かチャレンジしてみたのですが、はてなの防衛機能が無駄に働いて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">といった具合に呼び出すといいです

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

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

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

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

◎質問者からの返答

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


3 ● TransFreeBSD
●76ポイント

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

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

<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>

とします。

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

関連質問


●質問をもっと探す●



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