HTML ページがあり、HTML ページ内で Javascript を介して HTML ドキュメントの名前を取得したいと考えています。それは可能ですか?
例: html の名前document = "indexOLD.html"
HTML ページがあり、HTML ページ内で Javascript を介して HTML ドキュメントの名前を取得したいと考えています。それは可能ですか?
例: html の名前document = "indexOLD.html"
var path = window.location.pathname;
var page = path.split("/").pop();
console.log( page );
現在のページ: さらに短くすることも可能です。現在のページのファイル名を見つけるには、この 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; }
これを試して
location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
location.pathname は、ページ URL の一部 (ドメインは含まれません) を提供します。ファイル名のみを取得するには、部分文字列メソッドを使用して抽出する必要があります。
使用する:location.pathname
alert(location.pathname);
https://developer.mozilla.org/en-US/docs/DOM/window.location
/
これは、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);
window.location.pathname
現在のページの URL のパスを取得するために使用します。
@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);