![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こちらのサイトの
http://black-flag.net/jquery/20100526-1094.html
中段より少し下にある、『ページロード時にモーダルウィンドウを立ち上げるタイプ』
サンプルページ
http://black-flag.net/devel/jQueryPageloadModal/ …
というのを使いたいのですが、
2回目以降のページロード時には、実行しないようにしたいのですが、
具体的にどのようにすればいいでしょうか?
もし可能であれば、2回目以降ではなく、ブラウザを切るまでは実行しない、
または、訪問して1時間以内は実行しない、というふうにできればと思っています。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
jQueryのCookieプラグイン「jquery.cookie.js」
http://plugins.jquery.com/project/Cookie
使って、↓のようにすれば出来るけど、モーダルウィンドウ内でOK、NGの
判定はしてないよ。つまり、そこからYahooに飛んで戻ってきても、
あなたのページは訪問したことになってるよ。
※全角空白は半角空白にしてね。
<script type="text/javascript">
$(function(){
if($.cookie("check")===null){
var now = new Date();
now.setTime(now.getTime()+ 3600 * 1000); //1時間(3600秒)後
$.cookie("check","ok",{expires:now});
$('html').css({overflow:'hidden'});
if(document.getElementById("MDL_overlay") === null){
$('body').append('<div id="MDL_overlay"></div>');
if($.browser.msie && $.browser.version < 7){
$('body','html').css({height: '100%', width: '100%'});
$('#MDL_overlay').css('position','absolute');
$('#MDL_overlay').css('top',$(document).scrollTop());
}
}
if(document.getElementById("MDL_window") === null){
$('body').append(
'<div id="MDL_window">' +
'<h2>ページ認証BOX</h2>' +
'<p>年齢認証などで使用するページロード時に開くBOXサンプル。</p>' +
'<p>「OK」ボタンをクリックで枠を閉じる。<br />' +
'「CANCEL」ボタンをクリックでYahooサイトへリンク。</p>' +
'<div class="md_btn">' +
'<a href="javascript:void(0);" id="md_ok">OK</a><a href="http://www.yahoo.co.jp/" id="md_cancel">CANCEL</a>' +
'</div>' +
'</div>'
);
if($.browser.msie && $.browser.version < 7){
$('#MDL_window').css('position','absolute');
$('#MDL_window').css('top',($(document).scrollTop() + $(window).height()/2) + "px");
}
}
$('#MDL_overlay').show();
$('#MDL_window').fadeIn('slow');
$('#md_ok').click(function () {
MDL_eliminate();
});
}
});
function MDL_eliminate() {
$('html').css({overflow:''});
$('#MDL_overlay').fadeOut('fast');
$('#MDL_window').fadeOut('fast');
if($.browser.msie && $.browser.version < 7){
$("body","html").css({height: "auto", width: "auto"});
};
setTimeout(MDL_remove,500);
}
function MDL_remove() {
$('#MDL_overlay').remove();
$('#MDL_window').remove();
}
</script>
</head>
No.1
- 回答日時:
coockieを使いましょう。
>ブラウザを切るまでは実行しない
expires値を無指定
>訪問して1時間以内は実行しない
expires値を設定
coockieをチェックして、存在するならスクリプトは実行しない、存在しないならスクリプトを実行してcookieを書き込む(書きこみがあることが確認出来ればよいので設定する値は何でも良いでしょう)といったようにすればよいかと思います。。
参考URL:http://www.tohoho-web.com/wwwcook.htm
この回答への補足
LOHAさんへ
どうもありがとうございます。
expires値を無指定というのをしたいのですが、下のソースの最後のほうに
if (document.cookie) {expires=Thu, 01-Jan-1970 00:00:00 GMT}
のような感じで記述すればいいのでしょうか?検索してみましたが、よく分かりませんでした・・。
できましたら、具体的に教えていただけないでしょうか。
どうぞよろしくお願いいたします。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/ …
<script type="text/javascript">
$(window).load(function () {
$('html').css({overflow:'hidden'});
if(document.getElementById("MDL_overlay") === null){
$('body').append('<div id="MDL_overlay"></div>');
if($.browser.msie && $.browser.version < 7){
$('body','html').css({height: '100%', width: '100%'});
$('#MDL_overlay').css('position','absolute');
$('#MDL_overlay').css('top',$(document).scrollTop());
}
}
if(document.getElementById("MDL_window") === null){
$('body').append(
'<div id="MDL_window">' +
'<h2>ページ認証BOX</h2>' +
'<p>年齢認証などで使用するページロード時に開くBOXサンプル。</p>' +
'<p>「OK」ボタンをクリックで枠を閉じる。<br />' +
'「CANCEL」ボタンをクリックでYahooサイトへリンク。</p>' +
'<div class="md_btn">' +
'<a href="javascript:void(0);" id="md_ok">OK</a><a href="http://www.yahoo.co.jp/" id="md_cancel">CANCEL</a>' +
'</div>' +
'</div>'
);
if($.browser.msie && $.browser.version < 7){
$('#MDL_window').css('position','absolute');
$('#MDL_window').css('top',($(document).scrollTop() + $(window).height()/2) + "px");
}
}
$('#MDL_overlay').show();
$('#MDL_window').fadeIn('slow');
$('#md_ok').click(function () {
MDL_eliminate();
});
return false;
});
function MDL_eliminate() {
$('html').css({overflow:''});
$('#MDL_overlay').fadeOut('fast');
$('#MDL_window').fadeOut('fast');
if($.browser.msie && $.browser.version < 7){
$("body","html").css({height: "auto", width: "auto"});
};
setTimeout('MDL_remove()',500);
}
function MDL_remove() {
$('#MDL_overlay').remove();
$('#MDL_window').remove();
}
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) ActiveReportのサブレポート機能を利用したときに1ページ目の1サブレポート目が表示されない 1 2023/08/19 06:10
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- PDF こんなPDF作れますか? 6 2022/05/13 11:14
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- 電車・路線・地下鉄 特急しなのとしての新型車両が乗れるようになるのは、2026年度以降ではなくて、2029年以降なのでし 3 2023/08/16 15:18
- Word(ワード) Word2013 縦書き上下二段の表、改行を続けると次ページに情報が表示されるようにしたい 3 2022/06/16 09:24
- 中東 ドバイに入国する際には、ワクチン必須でしょうか? 1 2022/11/08 20:21
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
formのsubmitを押すとモーダル...
-
CSSでreadonlyの機能はあり...
-
確認ダイアログを次からは表示...
-
JavascriptのHTMLクラス表示に...
-
開閉式をページ内の通常のHTML...
-
javascriptでの(-)ハイフンの処...
-
2回目以降のページロード時には...
-
「ご処理進めて頂きますようお...
-
CloseとDisposeの違い
-
エクセルで、日付を入力すると...
-
DoEventsがやはり分からない
-
エクセルVBAで、MsgBox やInput...
-
Excelシート上のマクロを登録し...
-
エクセルの画面にユーザーフォ...
-
EXCEL VBA マクロ 実行する度に...
-
findは動くがfindnextがマクロ...
-
お家デートをしててハグを長い...
-
VBの質問#if 0 then ってどう...
-
【Excel】特定の文字を含むセル...
-
Googleフォーム・複数人の申し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動画の上に広告をオーバーレイ...
-
CSSでreadonlyの機能はあり...
-
jQueryでのドラッグアンドドロ...
-
formのsubmitを押すとモーダル...
-
Q&A掲示板の入力フォームに文字...
-
jqueryを使ったスムーススクロ...
-
確認ダイアログを次からは表示...
-
javascriptで複数の表示・非表...
-
javascriptのエラーで質問です。
-
特定の条件のHTML要素を一括で...
-
macかwinか判別しスタイルシー...
-
【JavaScript】検索がヒットし...
-
jQueryのSlickで矢印アイコンが...
-
javascriptでの(-)ハイフンの処...
-
クリックすると、色が変わるよ...
-
時間帯によってclass名を変更し...
-
フォームで「パスワード(確認...
-
3重のクォーテーション
-
SITEINFOの書き方について
-
【至急!!】Jqueryを使った下記...
おすすめ情報