Gibt es eine Möglichkeit, SharedWorker zu erstellen, der die Quelle von einer anderen Site lädt?

StackOverflow https://stackoverflow.com/questions/6332752

  •  27-10-2019
  •  | 
  •  

Frage

Angenommen, meine HTML-Datei stammt von http://foo.com/index.html http://bar.com/bar.js enthält ein <script>-Tag.In bar.js möchte ich einen SharedWorker starten, dessen URL http://bar.com/worker.js .Gibt es eine Möglichkeit, dies zu erreichen (vielleicht so etwas wie jsonp)?

War es hilfreich?

Lösung 2

Dies ist eine Lösung, die ich gefunden habe:

  • Schreiben Sie das Skript in eine Funktion (kann eine innere Funktion sein)
  • Ruft den Text mit function.toString () ab (Entfernen der Funktionsdeklaration und Schließen der Klammer)
  • Hänge den Text an einen BlobBuilder an und erhalte den Blob
  • Verwenden Sie window.URL.createObjectURL, um den Blob in eine URL zu konvertieren
  • Verwenden Sie diese URL für den Worker

Andere Tipps

Die heutzutage bevorzugte Methode für diesen domänenübergreifenden Zugriff ist die Verwendung der W3 CORS-Spezifikation.

Herkunftsübergreifende Ressourcenfreigabe

Dies ist jedoch möglicherweise nicht für Sie geeignet, wenn Sie die Website unter bar.com nicht kontrollieren.Wenn Sie dies tun, ist CORS definitiv eine gute Option, aber Sie müssen möglicherweise auf JSONP zurückgreifen, wenn bar.com von einer anderen Partei betrieben wird, da CORS davon abhängt, dass die Site bestimmte Header zurücksendet, die Ihren Browser zum Herunterladen der von Ihnen angeforderten Ressource autorisieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top