[英]Set Path to Root in JavaScript
我正在快速將ASP.NET Web應用程序項目從1.1移植到2.0。 因此,模板是作為自定義控件創建的,而不是母版頁。 側面板上有一個搜索框,可從網站上的每個頁面訪問。 該面板包含兩個用於名字和名字的文本框。
在將搜索參數作為查詢字符串提交時,用戶將轉移到mysite.com/search/results.aspx。 問題是,根據用戶從路徑提交搜索的位置,可能會出現如下情況:
mysite.com**/dir1/dir2**/search/results.aspx
我需要從根解析它,看起來JS位置對象是問題。
這是原始代碼。 如何構建從根解析的鏈接?
rightGutter.Controls.Add(new LiteralControl("<script language=javascript>"));
rightGutter.Controls.Add(new LiteralControl
("function doPhoneSearch(txtval,txtVal1) {"));
rightGutter.Controls.Add
(new LiteralControl("location.replace
('search/results.aspx?lnamedpco=' + txtval+'&fname='+txtVal1);"));
rightGutter.Controls.Add(new LiteralControl("txtval=\"\";"));
rightGutter.Controls.Add(new LiteralControl("return false;"));
rightGutter.Controls.Add(new LiteralControl("}"));
rightGutter.Controls.Add(new LiteralControl("</script>"));
HtmlTableCell rightCell8 = new HtmlTableCell();
rightCell8.Attributes.Add("align", "right");
rightCell8.Controls.Add
(new LiteralControl
("<a onClick=\"doPhoneSearch(document.getElementsByName
('lnamedpco')[0].value,
document.getElementsByName('fname')[0].value)\">"));
Image bgImage5 = new Image();
bgImage5.ImageUrl = "~/images/gobtn.gif";
bgImage5.Attributes.Add("runat", "server");
rightCell8.Controls.Add(bgImage5);
rightCell8.Controls.Add(new LiteralControl("</a>"));
<a onClick=\"doPhoneSearch(document.getElementsByName('lnamedpco')[0].value,
document.getElementsByName('fname')[0].value)\">
<img SRC=\"http://mysite/images/gobtn.gif\"
BORDER=\"0\" ALT=\"Submit Form\">
</a>
從這篇文章: 在代碼隱藏中獲取ASP.Net頁面的URL
您可以使用:HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)來獲取主機名,即根URL,其開頭是HTTP://。
所以我要做的就是替換這一行:
bgImage5.ImageUrl = "~/images/gobtn.gif";
同
bgImage5.ImageUrl = String.Format("{0}{1}",HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority),"/images/gobtn.gif");
這將為您提供絕對URL而不是根相對路徑,但它應該工作。
只需用“/”開始路徑:
rightGutter.Controls.Add
(new LiteralControl("location.replace
('/search/results.aspx?lnamedpco=' + txtval+'&fname='+txtVal1);"));
如果您使用“ //”代替,那么它還將選擇正確的協議字符串(“ http”或“ https”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.