2013-05-17 7 views
30

Ich habe eine HTML-Seite und ich möchte in der HTML-Seite den Namen des HTML-Dokuments über Javascript abrufen. Ist das möglich?Wie kann ich den Namen einer HTML-Seite in Javascript bekommen?

z.B. name of html document = "indexOLD.html"

+3

window.location.pathname – user1937198

+1

po ssible duplicate of [Holen Sie den Namen der Seitendatei aus der Adressleiste] (http://stackoverflow.com/questions/8497050/get-the-page-file-name-from-the-address-bar) – j08691

Antwort

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

Dies wird nicht funktionieren, wenn ein Schrägstrich auf der URL (in Fällen, in denen das Routing einen tatsächlichen Dateinamen verschleiert) – Damon

+2

Das ist ein weiterer Anwendungsfall @Damon, wenn das ein Problem für Sie ist, fügen Sie page.split ('#').Verschiebung(); –

2

Verwenden Sie window.location.pathname, um den Pfad der URL der aktuellen Seite abzurufen.

+1

dies bietet die volle URL, nicht der Name der Seite. – Hugolpz

7

Versuchen Sie, diese

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

location.pathname gibt den Teil (Domain nicht enthalten) der Seiten-URL. Um nur den Dateinamen zu erhalten, müssen Sie ihn mit der Substring-Methode extrahieren.

17

Aktuelle Seite: Es ist möglich, noch kürzer zu machen. Diese einzige Zeile eleganter klingt die aktuelle Seite Dateinamen zu finden:

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

oder ...

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

Diese cool nav Box Link, so dass der Link zu dem aktuellen anzupassen, ist erleuchtet von einer CSS-Klasse.

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

Dies ist eigentlich ein Array mit nur einem Element, wenn Sie location.pathname.split ("/"). Slice (-1) direkt wie in location.pathname.split ("/") verwenden. Slice (-1) .includes ("ALT") – Dave

1

Dies auch funktioniert, wenn die URL mit einem / endet:

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); 
Verwandte Themen