Вы можете просто использовать JavaScript-замыкания и вызывать их так часто, как вам нравится
function once(fn) {
return function() {
fn.apply(this, arguments);
fn = function() {};
}
}
function pageLoad() {
if(bPostBack == null)
ShowPopup();
}
pageLoad = once(pageLoad);
Таким образом, функция pageLoad будет запускаться только один раз, после чего она будет выполнять только пустую функцию.
Или вы могли бы немного упростить вещи:
function pageLoad() {
console.log("foo");
pageLoad = function() {};
}
(обратите внимание, что однажды приведенная выше функция более общая ... но обе делают то, что вам нужно)
Обновление :Это, очевидно, не работает, если ваша страница перезагружается, поскольку JavaScrip будет просто перезапускаться снова и снова.В этом случае вам нужно установить cookie или какой-либо другой флаг, который вы можете получить, чтобы проверить, было ли уже отображено всплывающее окно.
Вы можете использовать HTML5 Localstorage - но это поддерживается не во всех браузерах .. AЛучше было бы создать cookie, который вы можете получить, как описано в этой статье: http://www.quirksmode.org/js/cookies.html