簡體   English   中英

將JavaScript放在單獨的JS文件中后,ASP.net MVC 3中的JScript運行時錯誤

[英]JScript Runtime Error in ASP.net MVC 3 after placing the javascript in a separate JS File

嗨,我在ASP.net MVC3中遇到了Javascript Runtime Error。 下面的代碼片段工作正常,但是當我嘗試將displayTime()放入另一個.js文件時,這里的問題就解決了。...我試圖將整個javascript函數放在一個單獨的js文件中,然后添加如下所示的另一個導入:

<script src="@Url.Content("~/Scripts/customFunction.js")" type="text/javascript"></script>

Ive腳本導入后,...所有這些代碼都放在我的_Layout.cshtml文件中。 但是不幸的是,在<body onload="displayTime()">發生了MS JScript運行時錯誤,提示<body onload="displayTime()">期望對象<body onload="displayTime()">

<body onload="displayTime()">
        <!-- scripts -->
        <script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
        <script type="text/javascript">

        function displayTime()
        {

        }
    </script>
    </body>

這是JS函數的完整代碼:

var serverTime = @DateTime.Now.TimeOfDay.TotalSeconds;
var serverOffset = serverTime - getClientTime();

function getClientTime()
{
    var time = new Date();

    return (time.getHours() * 60 * 60) +
        (time.getMinutes() * 60) + (time.getSeconds());
}

function displayTime()
{
    var serverTime = getClientTime() + serverOffset;
    var hours = Math.floor(serverTime / 60 / 60).toString();
    var minutes = Math.floor(serverTime / 60 % (hours * 60)).toString();
    var seconds = Math.floor(serverTime % 60).toString();

    hours = hours.length == 1 ? '0'+ hours : hours;
    minutes = minutes.length == 1 ? '0'+ minutes : minutes;
    seconds = seconds.length == 1 ? '0'+ seconds : seconds;

    document.getElementById("clock").innerHTML = hours + ":" +
        minutes + ":" + seconds; // <-- updates the "clock" div.

    setTimeout(displayTime, 1000); // <-- calls this function again in 1 second.
}
<head>
<script type="text/javascript">
var serverTime = @DateTime.Now.TimeOfDay.TotalSeconds;
</script>
<script src="@Url.Content("~/Scripts/customFunction.js")" type="text/javascript"></script>
</head>

<body onload="displayTime()">
</body>

包含此displayTime函數的腳本應放在您的<head>部分中。 另外,由於您使用的是jQuery,為什么不簡單地使用$(document).ready函數呢?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM