Bookmarklet: Führen Sie den JS-Befehl aus, nachdem die Seite geladen wurde

1912
boleslaw.smialy

Ich baue ziemlich viele Bookmarklets, um meine tägliche Arbeit zu automatisieren. Jetzt stand ich vor einem Problem: Ich möchte (durch Klicken auf ein Bookmarklet) eine Seite in einem Webbrowser öffnen (ich verwende Internet Explorer 8) und einige spezifische Vorgänge auf der Benutzeroberfläche ausführen.

Die Webanwendung ist alt und bietet keine erweiterten Optionen wie die Tabellenfilterung. Ich habe diese Funktionalität bereits geschrieben, jetzt möchte ich eine Web-App öffnen und meinen JS-Code mit einem Klick auf das Bookmarklet anwenden.

Ich möchte also 3 Schritte mit einem Klick erledigen:

  1. Öffnen Sie eine Webseite.
  2. Warten Sie, bis die Webseite vollständig geladen ist.
  3. Führen Sie einen JS-Befehl aus alert('test');

Ich habe es einige Male versucht, aber es scheint mir unmöglich. Ich möchte also sicher sein: Ist das machbar?

4
Welchen Browser benutzen Sie? Sathya vor 10 Jahren 0
@Sathya - Internet Explorer 8 leider :) boleslaw.smialy vor 10 Jahren 0
Möglicherweise ist es möglich, wenn Sie die Seite in einem Frame laden. Daniel Beck vor 10 Jahren 0
@DanielBeck - interessante Idee, ich habe noch nie darüber nachgedacht. Ich werde es prüfen und Sie anschließend informieren! Prost! boleslaw.smialy vor 10 Jahren 0
@DanielBeck - hat die SOP-Richtlinien völlig vergessen. Ich darf keine JS-Aktion in iframe ausführen, da der "Bookmarklet-Gültigkeitsbereich" und der von mir erstellte iframe unterschiedlich sind. boleslaw.smialy vor 10 Jahren 0
Recht. Es gibt also im Grunde keine Lösung für diese Frage, da bei dieser Richtlinie jede Lösung gebrochen würde. Daniel Beck vor 10 Jahren 0

1 Antwort auf die Frage

1
Paul Sweatte

Ich habe diese Funktionalität bereits geschrieben, jetzt möchte ich eine Web-App öffnen und meinen JS-Code mit einem Klick auf das Bookmarklet anwenden.

Verwenden Sie ein Remote-Skript über window.openund window.opener:

 /* Web App */ <script> window.open('remote.html') </script>  /* remote.html */ <script> window.opener.onload = function(){} </script> 

Fügen Sie das Script-Tag über das Bookmarklet zur Web-App hinzu, dann erledigt es den Rest.

Verweise