2017-05-19 1 views
0

Ich habe eine Masterseite und untergeordnete Seiten.
Das Menü befindet sich auf der Masterseite.
Ich bekomme die Berechtigungen von Ajax Anruf, Menüverknüpfungen zu verbergen.Javascript vor Befüllung der Seite ausführen

$.ajax({ 

    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Query.asmx/GetUserPermissions", 
    data: "{}", 
    dataType: "json", 
    success: function (Result) { 
    Perms = Result.d; 
    var pageName = location.pathname.substring(1).toLowerCase(); 
    if (Perms.indexOf('4') != -1) { 
     $("#liCars").show(); 
    } 
    else { 
     if (pageName == 'webform2') { 
     window.location = 'default.aspx' 
     } 
    } 
    }, 
    error: function (Result) { 
    alert(Result.d); 
    } 
}); 

Also, was ist das Problem?
Das Problem ist, wenn der Benutzer die ohne Menü eingibt, ist die Seite vollständig geladen, bevor es auf Standardeinstellungen umgeleitet wird.
Ich denke, das ist normal, weil es auf document.ready ist.
Ich habe es auch außerhalb der ready() versucht, aber die li existiert nicht ... So funktioniert das Verbergen oder die Show nicht.

Antwort

0

Ich denke, Sie sollten die vollständige HTML-Menü aus HTML-Datei schneiden und append(); verwenden, um es zu zeigen, wenn Sie müssen. So ist es nicht, bis nicht JavaScript lädt zum Beispiel zeigen:

$.ajax({ 

    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Query.asmx/GetUserPermissions", 
    data: "{}", 
    dataType: "json", 
    success: function (Result) { 
    Perms = Result.d; 
    var pageName = location.pathname.substring(1).toLowerCase(); 
    if (Perms.indexOf('4') != -1) { 
     $("#mydiv").append('<menu>menu items html</menu>'); 
    } 
    else { 
     if (pageName == 'webform2') { 
     window.location = 'default.aspx' 
     } 
    } 
    }, 
    error: function (Result) { 
    alert(Result.d); 
    } 
}); 
+0

wo das Skript setzen –

+0

es hängt nicht davon ab, wo es zu setzen, hängt es von HTML wird bis Javascript läuft leer sein. –

+0

so können Sie es überall hinstellen. –

Verwandte Themen