使用ASP.NET从第二个文件调用JS函数

时间:2019-04-16 08:57:04

标签: javascript jquery asp.net

我有一个ASP.NET Web应用程序,该应用程序使用大型Javascript文件来启用前端功能。问题在于,由于此Web应用程序的大小在不断增长,因此Javascript文件的大小也在随之增长。

我想从我的主要javascript文件site.js中删除一些较大的函数,而是将它们包含在第二个文件中。我的目的是整理主JS文件并提高可读性等。

如果这是一个普通的Web应用程序,我确定我可以使用JQuery通过使用.getScript()来实现此目的,但是我尝试使用此功能来使用简单的警报功能,但出现参考错误,提示我的警报功能未定义。我已经在ASP.NET _Layout视图中包含了这两个脚本,但是仍然无法正常工作。

下面是我当前正在做的事情,我需要怎么做才能从site.js调用另一个文件中包含的JS函数?

site.js

$(function() {

    $(document).ready(function() {
        $.getScript("../site2.js");

        sendAlert();
    });

    //... other js

});

site2.js

$(function() {

    function sendAlert() {
        alert("site2 file");
    }

});

_Layout

<!DOCTYPE html>
<html>
<head>
    <script src="~/js/site2.js"></script>
    <script src="~/js/site.js"></script>
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.css" integrity="sha384-88btmYK8qOHy4Z2XuhkWZjUOHICKYe1eSDMwaDGOAy802OCu6PD6mwqY5OwnfGwp" crossorigin="anonymous">
    <script defer src="https://use.fontawesome.com/releases/v5.1.0/js/all.js" integrity="sha384-3LK/3kTpDE/Pkp8gTNp2gR/2gOiwQ6QaO7Td0zV76UFJVhqLl4Vl3KL1We6q6wR9" crossorigin="anonymous"></script>
</head>
<body>

@RenderBody()


@RenderSection("Scripts", required: false)
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我认为您可以这样做:

$(function() {

    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", "../site2.js");
    document.getElementsByTagName("head")[0].appendChild(script);

});

干杯-荣市

相关问题