Мне нужна помощь с сценарием, который я разрабатываю.У меня есть несколько рекламных объявлений.
Когда пользователь нажимает на рекламу, открывается новая страница.
На этой новой странице будет div для сообщений о состоянии, а под div - большой iframe.
Я хочу это так:
1. В окне сообщения о состоянии, он должен сказать «Загрузка содержимого iFrame ...» (до тех пор, пока URL-адрес 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, таймер сообщений о состоянии испортится.Итак: /