2013-09-26 25 views
0

我的一些頁面中有一個與窗體相關的錯誤。使相對鏈接絕對在javascript/php中

在根目錄中的任何頁面,形式的作品:

site.com/page.php 

在這些網頁上,它並不:

site.com/subdomain/page.php 
site.com/subdomain/subsubdomain/page.php 

我想我已經追蹤問題回一些腳本正在使用相對鏈接的標籤。

下面的代碼:

<script type="text/javascript" src="js/jquery-1.6.3.min.js"></script> 
<script type='text/javascript' src='jquery.autocomplete.js'></script> 
<script type="text/javascript"> 
$().ready(function() { 
    $("#where").autocomplete("autofill_source.php", { 
     width: 260, 
     matchContains: true, 
     selectFirst: false 
    }); 
}); 
</script> 

有3個文件被引用:將src 2 = 「* JS。」 中的代碼的功能部分的代碼和一個(autofill_source.php)的一部分。

我的問題是,我該如何着手將這三個鏈接絕對化,記住它可以從根文件夾或2,3或更多的子目錄中引用。

我見過它用${pageContext.request.contextPath}或其他方式處理,但我只是想問一下,看看最好的解決方案是什麼。

在此先感謝。

+0

a = document.createElement(「a」); a.href = 「whatev」;警報(a.href); – dandavis

回答

1

嘗試將autofill_source.php更換爲/autofill_source.php。路徑開始處的斜槓意味着Web服務器的根文件夾。 或者,您可能會在JavaScript中獲得包含window.location.origin的基本網址。

+0

,似乎有伎倆。在src =「」部分也可以這麼做嗎? – Kevin

+1

@Kevin,是的,瀏覽器會將''''autofill_source.php''解釋爲相對於您當前的路徑以及任何以正斜槓''/ autofill_source.php''開頭的相對於根的路徑,無論是否它是錨定標記或img標記的src,或者像你的情況。 – cbayram