我有一個腳本,基本上我試圖找到使用javascript/jquery(與location.pathname
).php文件的位置。所以,我的問題基本上是,如果用戶輸入一些奇怪的名字:清理location.pathname加載文件並選擇具有href屬性的元素
url.com/
或url.com////
或url.com////index.php////
或url.com////index.php.////
,然後我需要處理這個問題的方式,所以我可以得到/index.php
這樣我就可以選擇該文件並加載一些它的內容(使用ajax),以及選擇一個具有href = "/index.php"
的元素,這樣我就可以使其成爲一個活動鏈接。
還有的像這樣的另一個問題:我想
url.com/projects/index.php
,url.com////projects//index.php
爲其具有的/projects/index.php
輸出正確選擇的文件再次。
是否有這樣做的一個標準呢?我想避免使用一些正則表達式或字符串替換方法,因爲我不確定它是否能夠處理所有情況,但如果正確的方式去做他,那麼我會繼續並實施它。瀏覽器使用解析器來確定要加載的文件,所以如果有一個解決方案使用類似的東西(可能是內置的或某個東西),那就太好了。我試圖尋找jQuery URL解析器或清理,但我實際上不確定我應該尋找的術語是什麼,所以我的搜索結果很短。
編輯:正如一些背景,我基本上實現這個:http://css-tricks.com/rethinking-dynamic-page-replacing-content/,但我需要一種方法來調整它,所以它可以在子目錄的文件。
EDIT2:這裏是我的意思的例子:
EDIT3:這裏的Ajax調用我使用,這觸發對popstate:
var file = location.pathname;
$("#content").load(file + " #content", function() {
$("#menu ul a").removeClass("current");
$("#menu ul a[href="+file+"]").addClass("current");
});
當我這樣做了怪異的瀏覽器入口,負載和HREF明顯失敗,因爲href
屬性設置爲href = "/index.php"
在我的網站。即使頁面可以加載,load
函數也會因奇怪的輸入而失敗。
爲什麼用戶在輸入所有這些額外的斜線? – Barmar
@Barmar最有可能的用戶不會,但在他/她確實我還是希望我的網站正確執行 – Justin
我只是把www.domain.com/////index.php在我的瀏覽器的情況下,它沒有改寫就工作。我懷疑網絡服務器處理它,所以你不需要。 – Barmar