c'è un modo per creare SharedWorker che carica la sorgente da un altro sito?
-
27-10-2019 - |
Domanda
Supponiamo che il mio file html provenga da http://foo.com/index.html , al suo interno, c'è un tag <script>
in http://bar.com/bar.js .In bar.js, voglio avviare uno SharedWorker dove l'URL è http://bar.com/worker.js .C'è un modo per ottenere questo (forse qualcosa come jsonp)?
Soluzione 2
Questa è una soluzione che ho trovato:
- Scrivi lo script all'interno di una funzione (può essere una funzione interna)
- ottieni il testo usando function.toString () (rimuovendo la dichiarazione di funzione e chiudendo le parentesi graffe)
- aggiungi il testo a un BlobBuilder e ottieni il BLOB
- Utilizza window.URL.createObjectURL per convertire il BLOB in un URL
- utilizza quell'URL per il lavoratore
Altri suggerimenti
Il modo migliore per eseguire questo tipo di accesso tra domini in questi giorni è utilizzare la specifica W3 CORS.
Condivisione di risorse tra le origini
Tuttavia, questo potrebbe non essere adatto a te se non controlli il sito su bar.com.Se lo fai, CORS è sicuramente una buona opzione, ma potresti dover ricorrere a JSONP se bar.com è gestito da un'altra parte, poiché CORS dipende dal sito che restituisce intestazioni specifiche che autorizzano il tuo browser a scaricare la risorsa richiesta.