JQuery のダイアログを使用して、ユーザーがページにアクセスしたときにメッセージがポップアップするようにしていますが、1 日に 1 回しか発生しないはずです。私はすべてを機能させることができましたが、コードがヒットしたとき:
$('#dialog').dialog('open')
何も起こりません。今私がするとき:
modal: true,
実行すると、背景オーバーレイは表示されますが、実際のダイアログは表示されません。彼らがバグだと言った質問を読み、特定の行をコメントアウトしましたが、変更はありませんでした。
Chrome、ffなどでうまく機能します...IE8では機能しません
これが私のコードです(もちろん関連するものだけです):
<script src="http://testsite/JQuery/js/jquery-1.8.0.min.js" ></script>
<script src="http://testsite/JQuery/development-bundle/ui/jquery.ui.core.js"></script>
<script src="http://testsite/JQuery/jquery-ui-1.8.20.custom/development-bundle/ui/jquery.ui.widget.js"></script>
<script src="http://testsite/JQuery/jquery-ui-1.8.20.custom/development-bundle/ui/jquery.ui.position.js"></script>
<script src="http://testsite/JQuery/jquery-ui-1.8.20.custom/development-bundle/ui/jquery.ui.dialog.js"></script>
<link rel="stylesheet" href="JQuery/jquery-ui-1.8.20.custom/css/ui-lightness/jquery-ui-1.8.20.custom.css" type="text/css">
<script type="text/javascript">
function openpopup() {
$("#dialog").dialog('open');
}
function writeCookieTest() {
var currentDate = new Date();
currentDate.setTime(currentDate.getTime() + 60 * 1000); // Just a minute to test
document.cookie = "oncePerDay=true; expires=" + currentDate.toGMTString() + "; path=/";
}
function readCookieTest() {
var name = "oncePerDay";
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
$(document).ready(function () {
$("#dialog").dialog({
autoOpen: false,
modal: true,
height: 300,
width: 300
});
if (readCookieTest() != "true") {
writeCookieTest();
openpopup();
}
});
</script>
<div id="dialog" title="Reminder!">
<p>This is the text to remind...</p>
</div>