web-dev-qa-db-de.com

alert () funktioniert nicht in Chrome

error

'nuff sagte. Ich habe absolut keine Ahnung, warum die Verwendung von alert () dort nicht funktioniert. Es funktioniert perfekt in Firefox, gibt aber diesen Fehler in Chrome aus.

10
window.alert = null;
alert('test'); // fail
delete window.alert; // true
alert('test'); // win

window ist eine Instanz von DOMWindow. Wenn Sie etwas auf window.alert setzen, wird die korrekte Implementierung "gespiegelt", d. h. wenn Sie auf alert zugreifen, sucht sie zuerst im window-Objekt danach. Normalerweise wird dies nicht gefunden, und dann wird die Prototypkette hochgefahren, um die native Implementierung zu finden. Wenn Sie jedoch die alert-Eigenschaft manuell zu window hinzufügen, wird sie sofort gefunden und muss nicht in der Prototypkette nach oben verschoben werden. Mit delete window.alert können Sie die Fenstereigenschaft entfernen und erneut die Prototypimplementierung von alert verfügbar machen. Dies kann helfen zu erklären:

window.hasOwnProperty('alert'); // false
window.alert = null;
window.hasOwnProperty('alert'); // true
delete window.alert;
window.hasOwnProperty('alert'); // false
17
Matty F

Ich hatte vor kurzem dasselbe Problem auf meinem Testserver. Nachdem ich nach möglichen Gründen gesucht und die hier getesteten Lösungen getestet hatte, erinnerte ich mich daran, dass ich vor einigen Stunden auf die Option "Diese Seite mit dem Erstellen von Popups erstellen" geklickt hatte, als das Skript, an dem ich gerade arbeitete, Alarme auslöste . 

Die Lösung war so einfach wie das Schließen der Registerkarte und das Öffnen einer neuen!

14
whitebeard

Sehen Sie sich diesen Thread an: http://code.google.com/p/chromium/issues/detail?id=4158

Das Problem wird durch die JavaScript-Methode "Window.open (URL, windowName [ WindowFeatures])" verursacht. Wenn der 3. Parameter windowFeatures angegeben ist, funktioniert Das Alarmfeld im Popup-Fenster In Chrome nicht. Hier ist eine vereinfachte Reduzierung:

http: //go/reductions/4158/test-home-constrained.html

Wenn der dritte Parameter windowFeatures Ignoriert wird, funktioniert das Benachrichtigungsfeld im Popup In Chrome (das Popup ist Als neue Registerkarte in Chrome geöffnet), wie [.____. .] diese:

http: //go/reductions/4158/test-home-newtab.html

in IE7, Firefox3 oder Safari3 ist dies nicht der Fall, es handelt sich um ein Chrom-spezifisches Problem.

Siehe auch Anhänge für vereinfachte Reduzierungen

1
tofutim

Hier ist ein Ausschnitt, der ajQuery nicht benötigt und Alarme in einem deaktivierten iframe (wie bei codepen) aktiviert.

for (var i = 0; i < document.getElementsByTagName('iframe').length; i++) {
    document.getElementsByTagName('iframe')[i].setAttribute('sandbox','allow-modals');
}

Hier ist eine codepen-Demo, die auch nach diesem Update mit einer Warnung () arbeitet: http://codepen.io/nicholasabrams/pen/vNpoBr?editors=001

0
Alpha G33k

setze diese Linie am Ende des Körpers. Möglicherweise ist das DOM noch nicht bereit, wenn diese Zeile vom Compiler gelesen wird.

<script type="text/javascript" src="script.js"></script>"
0
RobertoFRey