Erzwingt, dass ASP.NET JavaScript für alle Benutzeragenten generiert

8

Ich habe kürzlich in meiner ASP.NET-Webanwendung festgestellt, dass ASP.NET das für die Ausführung erforderliche JavaScript nicht generiert, wenn ich meinen Benutzer-Agent auf eine leere Zeichenfolge (mithilfe eines FireFox-Plug-Ins zum Spoof des Benutzeragenten) setze Postbacks. Genauer gesagt, wenn Sie versuchen, die Funktion __doPostBack(a, b) von Ihrem Javascript aufzurufen, erhalten Sie eine Fehlermeldung, dass die Funktion nicht definiert ist.

Ich verstehe, dass jeder Browser über einen Benutzeragenten verfügt, so dass dies nicht oft der Fall ist, aber der Kern des Problems besteht immer noch: Es gibt Fälle, in denen ein nicht erkannter oder missgebildeter Benutzeragent Ihre Webanwendung unbrauchbar machen kann Sie verlassen sich auf Postbacks.

Dies ist dieser Frage ähnlich: ASP.net nicht für einige User Agents Javascript generieren , aber wenn ich es richtig lese, sieht es so aus, als würden Sie jeden nicht erkannten User Agent von Fall zu Fall korrigieren und ihn als einen anderen Browser maskieren. Meine Sorge ist weniger mit einem einzelnen Benutzeragenten und mehr mit der allgemeinen Tatsache, dass bestimmte Benutzeragenten nicht in der Lage sein werden, meine Anwendung zu verwenden, und ich werde es nicht wissen, weil der Fehler in Javascript und nicht auf dem Server auftritt.

Kennt jemand eine Art, wie ich ASP.NET zwingen kann, immer das erforderliche Javascript zu erzeugen?

    
Adam 24.12.2012, 21:52
quelle

1 Antwort

4

Wenn Sie die User Agenten leer gesetzt, oder wenn Sie einen unbekannten User-Agent-String verwenden, dann asp.net liest die Default.browser Datei aus Browsers Verzeichnissen und dort können Sie festlegen, wie Sie auf diese handeln, wie Fälle.

Die Zeilen, die Sie ändern müssen und in diesen Fällen JavaScript verwenden, sind die folgenden:

%Vor%

in der Standardeinstellung die javascript Zeile, wenn false . Ich mag hier anmerken, dass ich bin nicht so sicher, ob Sie es wirklich ändern müssen, wenn jemand Parodie der User-Agent, lassen Sie es tun. Wenn er Ihre Website mag und sie verwenden muss, dann sollten Sie besser wissen, wie Sie mit dem Browser umgehen, den er verwendet. Auf der anderen Seite müssen Sie darauf achten, wenn dies möglich ist, Ihre Website zu arbeiten, sogar mit Javascript, zumindest für die meisten Aktionen, die Sie tun.

Besser ist es, Link-Buttons (die das _doPostBack verwenden) zu vermeiden und Post-Back-Buttons zu verwenden. Ich weiß, dass Gridview und andere Verwendung auch die _doPostBack für Paging ... ok mit dem, aber besser, eine guten Website ist in der Lage gewesen, auch mit aus Javascript zu arbeiten.

Einige ähnliche Frage:
__doPostBack ist nicht definiert, auf DotNetNuke Website für IE 10

und dieser Blog: Bug und Fix: ASP.NET nicht IE10 verursacht _doPostBack undefiniert JavaScript-Fehler erkennen oder FF5 Scrollbar halten Position

    
Aristos 24.12.2012, 22:54
quelle