2013-05-17 11 views
30

私はhtmlページを持っていて、htmlページ の中に、htmlドキュメント の名前をJavascriptで取得したいと思います。それは可能ですか?Javascriptでhtmlページの名前を取得するにはどうすればよいですか?

htmlの名前document = "indexOLD.html"

+3

window.location.pathname – user1937198

+1

ポー[アドレスバーからページファイル名を取得する]の重複の可能性があります(http://stackoverflow.com/questions/8497050/get-the-page-file-name-from-the-address-bar) – j08691

答えて

71
var path = window.location.pathname; 
var page = path.split("/").pop(); 
console.log(page); 
+0

URLに末尾にスラッシュがある場合(ルーティングが実際のファイル名を偽装する場合) – Damon

+2

これは別の使用例です@Damon、それが問題であれば、page.split( '#' )。シフト(); –

2

現在のページのURLのパスを取得するには、window.location.pathnameを使用してください。

+1

これは完全なURL、ページの名前ではありません。 – Hugolpz

7

この

location.pathname.substring(location.pathname.lastIndexOf("/") + 1); 
をお試しください

location.pathnameは、ページのURLの一部(ドメインは含まれません)を示します。ファイル名だけを取得するには、部分文字列メソッドを使用してファイル名を補う必要があります。

17

現在のページ:さらに短くすることができます。これは、NAVボックスのリンクをカスタマイズするにはクールです

var fileName = location.pathname.split("/").slice(-1) 

...

var fileName = location.href.split("/").slice(-1); 

か、そう現在に向けてリンクが啓発:この一行は、現在のページのファイル名を見つけるために、よりエレガントに聞こえますCSSクラスによって。

JS:

$('.menu a').each(function() { 
    if ($(this).attr('href') == location.href.split("/").slice(-1)){ $(this).addClass('curent_page'); } 
}); 

CSS:

a.current_page { font-size: 2em; color: red; } 
+0

これは実際にはlocation.pathname.split( "/")を使用すると、実際にはlocation.pathname.split( "/")と同じように1つの要素しか持たない配列です。 ("古い") – Dave

1

これは、URLが/で終わる場合でも動作します:

var segments = window.location.pathname.split('/'); 
var toDelete = []; 
for (var i = 0; i < segments.length; i++) { 
    if (segments[i].length < 1) { 
     toDelete.push(i); 
    } 
} 
for (var i = 0; i < toDelete.length; i++) { 
    segments.splice(i, 1); 
} 
var filename = segments[segments.length - 1]; 
console.log(filename); 
関連する問題