Gibt es eine Möglichkeit, einen Klick auf eine Warnung in JavaScript zu simulieren?

8

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?

    
moffdub 19.02.2009, 03:52
quelle

6 Antworten

17

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 :

    
Rex M 19.02.2009, 04:01
quelle
7

Ich bin mir ziemlich sicher, dass das nicht möglich ist.

    
fig 19.02.2009 03:56
quelle
3

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%     
Quintin Robinson 19.02.2009 05:08
quelle
2

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.

    
Thomas L Holaday 19.02.2009 04:01
quelle
1

Ich bezweifle es sehr. Wenn Sie mit separater Domäne meinen, eine, über die Sie keine Kontrolle haben?

Wenn Sie die Kontrolle haben, könnten Sie die Warnungen in modale Javascript-Boxen ändern, die Sie kontrollieren könnten.

    
alex 19.02.2009 03:59
quelle
0

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.

    
William Clemens 19.02.2009 05:06
quelle

Tags und Links