Ich habe eine Seite mit einem iframe, dessen Quellseite sich in einer separaten Domäne befindet. Von Zeit zu Zeit generiert die Quellseite eine Warnung. Wenn dies der Fall ist, wird der Vorgang gestoppt, bis der Benutzer auf OK klickt.
Ich möchte programmgesteuert bei dieser Warnung auf OK klicken, damit die Quellseite wieder nützlich wird. Ist das möglich?
JavaScript ist single-threaded, dh wenn Sie eine Funktion aufrufen, blockiert sie, bis sie zurückkehrt. Wenn Sie alert () aufrufen, übergibt das die Kontrolle an den Browser, der entscheidet, wie er damit umgehen soll. Es ist nicht Javascript, das den UI-Dialog öffnet, es ist der Browser. alert () kehrt erst zurück, wenn der Browser das Ereignis "OK" empfängt und die Steuerung zurückgibt. Der JavaScript-Thread wird angehalten, bis das passiert.
Aus mindestens zwei verschiedenen Gründen im obigen Absatz lautet die Antwort no :
Du solltest kein Problem haben, wenn du den Text der Warnung kennst und es dir nichts ausmacht, schmutzig zu werden.
Sie können die Warnung des iframe-Fensters mit Ihren eigenen überschreiben und etwas mit dem Effekt von .. tun.
%Vor%Bearbeiten: Ich habe einen kleinen Test mit einem Proxy-Handler gemacht (es ist in asp.net/c#, aber Sie sollten die Idee bekommen) ...
Die externe Seite in meinem Test ist eine w3-Seite mit einer Schaltfläche, die eine Warnung anzeigt. Die Warnung wird nun durch die benutzerdefinierte Funktion geleitet.
Ich bin mir sicher, dass das viel dreckiger ist, als du gerne hättest.
Seite:
%Vor%Proxy-Handler:
%Vor%Was passiert, wenn Sie die Warnung mit einem No-Op in Ihrem Code überschreiben?
z.B.
%Vor%Wenn die Zeile auskommentiert ist, wird eine Warnung angezeigt. Wenn die Zeile kommentiert ist, wird keine Warnung angezeigt.
Die beste Lösung, um Ihre Probleme mit nervigem JavaScript zu lösen, wäre es, es mit einem clientseitigen Skript-Tool wie Greasemonkey zu überschreiben.
Tags und Links javascript alerts