2011-08-08 41 views
1

我把我的JavaScript放在MyApp.js中,這樣我就不必在ASPX頁面中尋找標籤了。但是,當開發目錄和部署目錄不同時,我遇到了我的應用程序根目錄問題,因此我使用全局變量(appRoot)手動更改部署和開發時間之間的路徑。我試過window.location.url,window.location.host等,沒有任何工作。由於我不能在.js中使用<%:Url.Content(「〜/ AppRoot」)%>,所以如何使.js中引用的任何路徑獨立於我的部署目錄所在的位置?感謝您的幫助。在Java中的應用根

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 

});

回答

0

可以使用

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

調用您的應用程序(的.aspx)

+0

是否有可能您還有一個標誌,用於在開發和部署之間進行區分,因此您可以在該區域和其他區域使用具有不同文字的標誌。建議:我不知道asp.net,所以請確保Url.Content(「〜/ AppRoot」)不能被注入或消毒 –

+0

謝謝。我修改了你的建議,並將其放在Site.Master中,並且工作。 \t user266909

+0

你也可以用這種方式來解決你的[問題](http://stackoverflow.com/q/6419950/443685)。 –

0

的DINAMIC部分.js文件如果有那個總是包含每一個你可以使用它的位置頁面上的腳本前標識網站根:

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

如果將腳本存儲在Scripts子目錄或類似文件中,根據需要調整第二行。