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);
}
}
manque une balise de script de fermeture dans l'extrait de la source. – DaveB