2016-11-15 7 views
0

Ich habe eine Website mit Tabs, wo jeder Tab in der Tat in der gleichen Tabelle mit einem Attribut ist, die es zeigen oder nicht. Dann würde eine JavaScript-Funktion das Attribut ändern, wenn Sie auf die Registerkarte drücken.Rufen Sie eine JavaScript-Funktion durch URL

Die Funktion ist so etwas wie dieses:

function showHide(ID) { 
switch (ID) { 
    case 'main': 
    document.getElementById('main').style.display = 'block'; 
    document.getElementById('abstracts').style.display = 'none'; 
    break; 
    case 'abstracts': 
    document.getElementById('main').style.display = 'none'; 
    document.getElementById('abstracts').style.display = 'block'; 
    break; 
} 
return true; 
} 

Dann wird der Titel des Reiters ist so etwas wie

<a href="" onclick="showHide('main');return false;">Main</a> 

und die Lasche ist

<tr id="main"> ... </tr> 

Die Sache ist, dass Ich möchte in der Lage sein, eine URL für eine Registerkarte zu haben, zum Beispiel http://mypage.com#main oder so ähnlich das, wenn ich also zu dieser URL eingreife, wird der Tab main fokussiert.

Ist das möglich?

+1

ja, lesen Sie den Hash auf Seite laden .... – epascarello

Antwort

3

Am Ende der Seite oder window.onload, lesen Sie den Hash und rufen Sie Ihre Methode.

(function(){ 
    var hash = window.location.hash.substr(1); 
    showHide(hash); 
}()); 

und wenn Sie die URL ändern möchten, wollen Sie wahrscheinlich die return false entfernen.

+0

Funktioniert perfekt. Vielen Dank! –

0

Hier können Sie den Hashchange-Ereignis-Listener verwenden. zB: window.addEventListener ("hashchange", doThisWhenTheHashChanges, false);

Verwandte Themen