2011-09-16 4 views
0

J'ai un site Web asp.net C# que j'ai un problème pour exécuter le fichier jscript. J'ai une masterpage qui charge qui contient le javascript et le code. Un extrait de code est ci-dessous. Quand il fonctionne, la minuterie n'apparaît jamais. Si je clique sur le bouton de fermeture de la page, j'obtiens une erreur qui indique:Fonction JScript renvoyant une valeur nulle lorsque le code existe

Erreur d'exécution Microsoft JScript: La valeur de la propriété 'closePage' est null ou indéfinie, pas un objet Function.

sur la ligne:

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

J'ai essayé beaucoup de choses, en déplaçant la ligne .js src ci-dessus et en dessous de la section var. Rien ne semble changer cela. La chose étrange est que cela a bien fonctionné il y a quelques jours. J'ai remarqué que MS a fait plusieurs mises à jour VS le 9/14.

Toute aide serait appréciée.

Je peux faire une source de vue et la ligne js apparaît bien:

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

L'extrait de la source est ci-dessous:


<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> 

le PageClose.js a:

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

manque une balise de script de fermeture dans l'extrait de la source. – DaveB

Répondre

1

Vous avez simplement oublié la balise </script> fermeture:

<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 
Questions connexes