72

HTML ページがあり、HTML ページ内で Javascript を介して HTML ドキュメントの名前を取得したいと考えています。それは可能ですか?

例: html の名前document = "indexOLD.html"

4

11 に答える 11

152
var path = window.location.pathname;
var page = path.split("/").pop();
console.log( page );
于 2013-05-17T14:29:36.267 に答える
35

現在のページ: さらに短くすることも可能です。現在のページのファイル名を見つけるには、この 1 行の方が洗練されているように思えます。

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

また...

var fileName = location.pathname.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; }
于 2014-01-24T22:46:52.650 に答える
13

これを試して

location.pathname.substring(location.pathname.lastIndexOf("/") + 1);

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

于 2014-01-20T13:20:53.667 に答える
7

使用する:location.pathname

alert(location.pathname);

http://jsfiddle.net/yQqe3/

https://developer.mozilla.org/en-US/docs/DOM/window.location

于 2013-05-17T14:29:38.477 に答える
6

/これは、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);
于 2016-12-03T01:40:49.870 に答える
5

window.location.pathname現在のページの URL のパスを取得するために使用します。

于 2013-05-17T14:29:30.580 に答える
0

@Ethanの解決策は私が必要としていたものでしたが、いくつかの変更を加える必要がありました。つまり、toDelete 配列の要素は、配列セグメントから要素を削除するとその数が減少することを考慮していません。だからここに私の2ペンスがあります:

let segments = window.location.pathname.split('/');
let toDelete = [];
for (let i = 0; i < segments.length; i++) {
    if (segments[i].length < 1) {
        toDelete.push(i);
    }
for (let i = 0; i < toDelete.length; i++ ) {
    segments.splice(toDelete[i], 1);
    for (let j = i; j < toDelete.length; j++ ) {
        (toDelete[j])--;
    }
}
let filename = segments[segments.length - 1];
console.log(filename);
于 2021-03-25T14:58:35.690 に答える