Функция JScript, возвращающая ноль, когда код существует - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть сайт asp.net c #, у меня возникла проблема с выполнением jscript.У меня есть мастер-страница, которая загружает, который содержит JavaScript и код.Выдержка из кода ниже.Когда он работает, таймер никогда не появляется.Если я нажимаю кнопку закрытия страницы, я получаю сообщение об ошибке:

Ошибка времени выполнения Microsoft JScript: значение свойства closePage равно null или не определено, а не объекту Function.

на линии:

<input type="submit" name="ctl00$CloseSection$btnClose" value="Close Page Now" onclick="closePage(); return false;" id="ctl00_CloseSection_btnClose" class="buttons" />

Я пробовал много вещей, перемещая строку .js src выше и ниже секции var.Кажется, ничто не изменит это.Странно то, что это работало нормально всего несколько дней назад.Я заметил, что MS сделала несколько обновлений VS 9/14.

Буду признателен за любую помощь.

Я могу сделать источник просмотра, и строка js будет отображаться нормально:

 <script src="jscripts/StoreFrontClose.js" type="text/javascript"></script>

Ниже приведена выдержка из источника:


<asp:ContentPlaceHolder ID="CloseSection" runat="server">
 <script src="jscripts/PageClose.js" type="text/javascript"></script>

<script type="text/javascript" language="javascript">
  var timeoutMins = 0;
  var timeoutSecs = 30;
alert("getting ready to start timer");
if (source == "kiosk") {
  startPageCloseTimer();
}              
<div style="text-align: center;">
 The Page will close in: <span id="theTime" class="timeClass"></span>
    <br />
  <asp:Button ID="btnClose" CssClass="buttons" runat="server" OnClientClick="closePage();"
                        Text="Close Page Now" />
 <asp:Button ID="btnKeepOpen" CssClass="buttons" runat="server" OnClientClick="resetTimer();"
                        Text="Keep Page Open a little Longer" />
</div>
</asp:ContentPlaceHolder>

PageClose.js имеет:

    function startPageCloseTimer() {
    alertTimerId = setTimeout("AlertUser()", timeoutMilli);
    countDown();
}

function AlertUser() {
    extend = false;
    handleTimerId = setTimeout("HandleTimeout();", maxPopupTime);
    jQuery("#messagePopup").dialog("open");
}

function HandleTimeout() {
    if (!extend) {
        closePage();
    }
}

function KeepSessionAlive() {
    extend = true;
    resetTimer();
}



function resetTimer() {

    clearTimeout(alertTimerId);
    clearTimeout(handleTimerId);
    alertTimerId = setTimeout("AlertUser()", timeoutMilli);
    sec = timeoutSecs;
    min = timeoutMins;
    countDown();
}

function closePage() {
alert("getting ready to close page");
clearTimeout(handleTimerId);
clearTimeout(alertTimerId);
clearTimeout(countDownTimerId);
}

var sec = timeoutSecs; //   set the seconds
var min = timeoutMins; // set the minutes

function countDown() {
    sec--;
    if (sec == -01) {
        sec = 59;
        min = min - 1;
    } else {
        min = min;
    }
    if (sec <= 9) { sec = "0" + sec; }
    var time = "";
    if (min > 0) {
        time = (min <= 9 ? "0" + min : min) + " min and ";
    }

    time = time + sec + " sec ";

    if (document.getElementById("theTime")) {
        document.getElementById("theTime").innerHTML = time;
    }
    countDownTimerId = window.setTimeout("countDown();", 1000);
    if (min == '00' && sec == '00') {
        sec = "00";
        window.clearTimeout(countDownTimerId);
    }
}

1 Ответ

1 голос
/ 08 мая 2012

Вы просто забыли закрывающий тег </script>:

<script src="jscripts/PageClose.js" type="text/javascript"></script>

<script type="text/javascript" language="javascript">
    var timeoutMins = 0;
    var timeoutSecs = 30;
    alert("getting ready to start timer");
    if (source == "kiosk") {
        startPageCloseTimer();
    } // end of script
</script> // close tag
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...