Javascript 中的应用程序根目录

发布于 2024-11-28 12:28:10 字数 1700 浏览 1 评论 0原文

我将尽可能多的 javascript 放在 MyApp.js 中,这样我就不必在 ASPX 页面中寻找标签。但是,当开发目录和部署目录不同时,我的应用程序根目录会出现问题,因此我使用全局变量(appRoot)来手动更改部署和开发时间之间的路径。我尝试了 window.location.url、window.location.host 等,但没有任何效果。因为我无法使用 <%: Url.Content("~/AppRoot") %>在 .js 中,如何使 .js 中引用的任何路径独立于我的部署目录所在的位置?感谢您的帮助。

var appRoot =  "/2_1/"; //deployment path  
//var appRoot = "/"; //development path

$(function () {
    $("#txtSSNPage1,#txtSSNPage2").blur(function () {
        if ($(this).val() != undefined && jQuery.trim($(this).val()).length != 0) {
        try {
            var form = $(this).parents('form:first');
            form.attr('action', appRoot + 'Controller1/SSN/' + escape(jQuery.trim($(this).val())));
            form.submit();
        }
        catch (err) {
            alert(err.description);
        }
    } //if
}); //blur

$("input#txtNamePage3").blur(function () {
    if ($(this).val() != undefined && jQuery.trim($(this).val()).length != 0) {
        try {
            var form = $(this).parents('form:first');
            form.attr('action', appRoot + 'Controller2/SSN/' + escape(jQuery.trim($(this).val())));
            form.submit();
        } catch (err) {
            alert(err.description);
        }
    } //if
}); //blur

$("input#txtNamePage4").blur(function () {
    if ($(this).val() != undefined && jQuery.trim($(this).val()).length != 0) {
        try {
            var form = $(this).parents('form:first');
            form.attr('action', appRoot + 'Controller2/FullName/' + escape(jQuery.trim($(this).val())));
            form.submit();
        } catch (err) {
            alert(err.description);
        }
    } //if
}); //blur

});

I put as much as my javascript in the MyApp.js so that I don't have to hunt for tag among ASPX pages. However, I have problem with my app root when the development directory and the deployment directory are different, so I use a global variable (appRoot) to manually change the path between deployment and development time. I tried window.location.url, window.location.host, etc, nothing worked. Since I can not use <%: Url.Content("~/AppRoot") %> in .js, how can I make any path that is referenced in the .js independent on where my deployment directory is? Thank you for your help.

var appRoot =  "/2_1/"; //deployment path  
//var appRoot = "/"; //development path

$(function () {
    $("#txtSSNPage1,#txtSSNPage2").blur(function () {
        if ($(this).val() != undefined && jQuery.trim($(this).val()).length != 0) {
        try {
            var form = $(this).parents('form:first');
            form.attr('action', appRoot + 'Controller1/SSN/' + escape(jQuery.trim($(this).val())));
            form.submit();
        }
        catch (err) {
            alert(err.description);
        }
    } //if
}); //blur

$("input#txtNamePage3").blur(function () {
    if ($(this).val() != undefined && jQuery.trim($(this).val()).length != 0) {
        try {
            var form = $(this).parents('form:first');
            form.attr('action', appRoot + 'Controller2/SSN/' + escape(jQuery.trim($(this).val())));
            form.submit();
        } catch (err) {
            alert(err.description);
        }
    } //if
}); //blur

$("input#txtNamePage4").blur(function () {
    if ($(this).val() != undefined && jQuery.trim($(this).val()).length != 0) {
        try {
            var form = $(this).parents('form:first');
            form.attr('action', appRoot + 'Controller2/FullName/' + escape(jQuery.trim($(this).val())));
            form.submit();
        } catch (err) {
            alert(err.description);
        }
    } //if
}); //blur

});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不再见 2024-12-05 12:28:10

使用(.aspx)

<% response.write "<script>var appRoot =  """ & Url.Content("~/AppRoot") & """</script>" %>

您可以在应用程序的动态部分调用 .js 文件之前

you can use

<% response.write "<script>var appRoot =  """ & Url.Content("~/AppRoot") & """</script>" %>

before calling the .js file in the dinamic part of your app (.aspx)

三生一梦 2024-12-05 12:28:10

如果每个页面上始终包含一个脚本,您可以使用其位置来识别站点根目录:

var myScript = $('script[src$="myscript.js"]');
var baseUrl = myScript.attr('src').substring(0, myScript.attr('src').length - "myscript.js".length);

如果您将该脚本存储在 Scripts 子目录或类似目录中,请根据需要调整第二行。

If there's a script that's always included on every page you can use its location to identify the site root:

var myScript = $('script[src$="myscript.js"]');
var baseUrl = myScript.attr('src').substring(0, myScript.attr('src').length - "myscript.js".length);

Adjust the second line as needed if you store the script in a Scripts subdirectory or similar.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文