2015-06-17 66 views
0

今天在公司网站上发现了一个破碎的链接,经过一番挖掘,这里是我发现的:一个简单的JS函数,在主HTML页面的网站导航中打开FAQ.aspx页面。JavaScript window.open()和破损的URL

function openFAQ() { 
     window.open(location.protocol + "help/FAQ.aspx", "null", "width=750, height=800, resizable=1, scrollbars=1, location=0, directories=0, status=no, menubar=no, toolbar=no"); 
} 

该网站动态拼凑在一起。从主页面(主Web应用程序)

http://example.com/index.aspx

的链接常见问题 - 适用于正确的URL为

http://example.com/help/FAQ.aspx

如果我浏览到

http://example.com/userpages/settings.aspx

菜单仍然可用,但是当点击FAQ时,它会生成fo lrow URL:

http://example.com/userpages/help/FAQ.aspx

"~/help/FAQ.aspx"不能像src或href那样工作。不知道如何得到这个工作。在此先感谢

回答

2

window.open("/help/FAQ.aspx"....)应该做的伎俩

+0

哈哈,哇,谢谢。只是好奇,是'/'的JavaScript表示根的方式?是〜/'更多的HTML /终端的东西? –

+1

好问题。它是一个与根相关的url,我相信它实际上是在HTML规范中,而不是JavaScript,尽管我没有看。例如,你可以在HTML中使用'Help Link',它可以以同样的方式工作。 '〜'是ASP.Net服务器端的东西,并且表示应用程序正在运行的文件系统上的文件夹。 – gaiazov

1

我想这应该工作,

function openFAQ() { 
      window.open(window.location.hostname+ "/help/FAQ.aspx", "null", "width=750, height=800, resizable=1, scrollbars=1, location=0, directories=0, status=no, menubar=no, toolbar=no"); 
    } 

location.protocol provides the protocol used, e.g., http:, https: etc 
location.hostname provides the hostname, e.g., www.mysite.com 
+0

感谢您的回答和解释! –

+0

不客气! –