jQueryUI Dialog + Firefox + ASP.Net = Zugriff auf den strikten Modus Anrufer-Funktion ist zensiert
Ich habe eine Seite, die gut funktioniert in IE und Chrome aber nicht in Firefox und Opera. Wenn ich sage es funktioniert nicht, ich meine, dass die Submit
button nicht tun überhaupt nichts. Es ist eine Seite mit mehreren geschachtelten UpdatePanels
auf es und ein paar von jQueryUI Akkordeons auf Sie zu.
Habe ich eine einfache div
.
<div id="date-dialog" title="Date?">
<label id="lblDate" for="txtDate">
Please Enter Your The Date:
</label>
<input type="text" id="txtDate" class="text ui-widget-content ui-corner-all" />
</div>
Und dann habe ich einige einfache code schalten Sie es in einen dialog:
$('#date-dialog').dialog({
autoOpen: false,
modal: true,
resizable: false,
buttons: {
"Submit": function () {
__doPostBack('DateButton', $('#txtDate').val());
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
$('#txtDate').datepicker({ dateFormat: 'yy-mm-dd' });
Habe ich auch versucht, indem diese, die nicht helfen, und das funktioniert nicht mit einem modalen Dialogfeld, in:
open: function (type, data) {
$(this).parent().appendTo("form");
},
In Firefox bekomme ich die folgende Fehlermeldung:
Error: TypeError: access to strict mode caller function is censored
Source File: http://ajax.microsoft.com/ajax/4.0/2/MicrosoftAjaxWebForms.debug.js
Line: 718
Ich habe keine Ahnung, was zu tun ist, um dieses Problem zu beheben. Ich würde lieben, Sie zu deaktivieren strict mode
, aber ich finde keine Informationen, wie das zu tun. Ich kann kaum finden Sie alle Informationen über die Fehler mit Google. Wie es scheint, was ich tun sollte Recht einfach sein.
- Ich haben erstellen Sie eine bug report über diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine alte post, aber dieses Problem immer noch aufgetreten ist, heute zu mir.
Ich wollte nicht zu verwenden, die klicken Sie auf die Schaltfläche, so dass anstelle habe ich versucht, eine
setTimeout
und es funktioniert auch.Menschen mit diesem Problem, versuchen Sie diese Lösung:
Nachdem ich vor kurzem hatte, um dieses Problem zu beheben habe ich festgestellt, dass ich das problem lösen könnte und bekommen __doPostBack arbeiten in Edge, IE, Chrome & FireFox, indem Sie den folgenden script an die Spitze meiner app.
Mithilfe der SetTimeout Funktion bricht Edge. Nur darum, in Fenster.event={} brach IE.
Während dies nicht wirklich erklären, wie das problem zu lösen, dieses ist ein funktionierendes work-around.
Ich erstellt ein verstecktes Feld, welches die einzelnen Felder im Dialogfeld. Dann erstellte ich eine Schaltfläche. Diese mussten gehalten werden, außerhalb des Dialogfelds
div
weil diediv
bewegt wird, um außerhalb der form, wenn es gedreht wird in einem Dialogfeld. Dann habe ich meine modifizierten Dialogfeld erstellen code, um so etwas wie dieses:__doPostBack('DateButton', '');
den Fehler auslöst. Verändert es$('#<%=DateButton.ClientID %>').click();
und es funktioniert wieder ... sieht aus wie ein Fehler in der ASP.NET JavaScript zu mir.Ist dies funktioniert für den IE, Chrome und Firefox. browser!, Dank https://mnaoumov.wordpress.com/2016/02/12/wtf-microsoftajax-js-vs-use-strict-vs-firefox-vs-ie/
Mir das passiert im Firefox Quantum. Ich war mit einem jQuery-3.x CDN, hatte ich, um es herunterzuladen zu verweisen, die lokal in meinem Projekt. Danach habe ich bearbeitet (jquery.3.x.min.js) und kommentiert/entfernt die folgenden:
"use strict";
Ich zu tun hatte
search
entfernen Sie alle. Es waren zwei.