我正在开发的脚本需要一些帮助。我有一些广告 当用户点击广告时,将打开一个新页面。
在这个新页面上,会有一个div状态消息,而div下面会有一个大iframe。
我想要这样:
1.在状态消息框中,它应显示“正在加载iFrame的内容...”(直到iFrame的网址已满载)
2.它应从X秒/加载条倒计时。
3.当它达到零时,表格应该运行,并在状态div中输出数据。
有人可以帮我解决这个问题吗?它应该都是用jQuery完成的,没有任何重载。
我有这么多:
var countDownTimer = null;
var seconds = <?php echo $exposure[$r['exposure']]; ?>;
function setCountDownTimer(){
if(countDownTimer)
clearTimeout(countDownTimer);
countDownTimer = setTimeout(updateCountdown, 1000);
};
function updateCountdown() {
countDownTimer = null;
seconds--;
if (seconds > 0) {
$("#countdown").text("You must view this advertisement for " + seconds + " seconds.");
//$('#progressbar').progressbar({ value: Math.round((seconds/10)*100) });
setCountDownTimer();
} else {
submitForm();
}
}
// on document load:
$(function() {
$("#progressbar").progressbar({ value: 0 });
// set "waiting" message:
$("#loadingStatus").html("Waiting for your advertisements to load...");
// on iframe load:
$('#iFrame').load(function() {
$("#loadingStatus").html($("#isDone").html());
//Attached click event to the link inside iframe to restart the timer
var iframe = $('#iFrame');
iframe.contents().find("linkSelector").click(function(){
window.top.setCountDownTimer();
});
});
setCountDownTimer();
});
function submitForm() {
$("#countdown").empty().html('<img src="..ify/dream/images/loading.gif" />');
$.post(
'index.php?i=v&p=k&key=DSF79SADFHSA7D9FGSAD097FSAD7F9779ASDFGS9',
$('form').serialize(),
function (data) {
proccessData(data);
}
);
}
function proccessData (data) {
$('#statusF').hide().html('');
if(data=='success'){
$('form').fadeOut();
$('#countdown').addClass('noti-success').html('Advertisement validated!').slideDown();
redirect("?i=l");
}
else {
$('#countdown').addClass('noti-error').html(data).fadeIn();
}
}
上面代码的问题在于,当用户例如点击iframe时,状态消息计时器将会搞乱。所以:/
答案 0 :(得分:0)
您需要使用jQuery.ajax方法(或其衍生产品之一)。使用jQuery.ajax,您可以将所需的任何数据发送到服务器以“运行表单”(如您所述),当您获得html时,可以将其保存在变量中。然后,您可以使用计时器对象在超时到期时将div的html设置为新内容。