Come posso scrivere su una memoria locale di un dominio diverso. L'idea è che ho bisogno della mia estensione chrome per scrivere qualcosa nella memoria locale e quando l'utente visita il sito Web associato, il sito del sito può leggere il contenuto della memoria locale. Sto provando a fare una sincronizzazione tra i dati personali dell'utente senza doverli memorizzare nel server.Chrome - Scrittura sull'archivio locale di un dominio diverso
risposta
Penso che l'unica soluzione per farlo è tramite l'iniezione di script a causa di restrizioni incrociate del dominio.
var s = document.createElement('script');
s.src = chrome.extension.getURL("script.js");
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
Aggiungere un file script.js
al proprio interno l'accesso ai siti di altri localStorage, si deve aggiungere script.js
a "web_accessible_resources" nel file manifest.
Si noti che lo script viene automaticamente rimosso dopo che lo script è stato completamente caricato, quindi assicurarsi che il codice che si desidera eseguire sia contenuto in una funzione autoespostabile.
Content scripts hanno accesso diretto a localStorage di una pagina.
Se si desidera memorizzare un valore per un dominio specifico, è sufficiente aprire una finestra o una cornice, quindi scrivere nella memoria locale della finestra/pagina.
scegliere la vostra opzione preferita per attivare la pagina:
chrome.tabs.create
per creare una scheda inattiva, forse nella finestra non attiva trovato utilizzandochrome.tabs.query
.- L'API sperimentale
offscreenTabs
(sperimentale, quindi non pronta per l'uso in produzione). Vedi alcuni degli examples che ho pubblicato su SO. - Creare un IFrame e inserirlo nella pagina corrente.
window.open
(non raccomandato ...)
Quando si decide di aprire una pagina, scegliere uno che è leggero.
/robots.txt
è in genere una buona scelta: esiste nella maggior parte dei siti, e, è un file di testo semplice.Attiva lo script di contenuto per la pagina. È possibile utilizzare il file manifest e utilizzare le API messaging o aggiungere una richiamata al metodo
chrome.tabs.create
che inserisce in modo programmatico uno script di contenuto (chrome.tabs.executeScript
).
Ecco un semplice esempio. Richiede l'API tabs
perché sto utilizzando chrome.tabs.executeScript
. Inoltre, l'origine che si desidera accedere dovrebbe essere aggiunta all'elenco delle autorizzazioni.
chrome.tabs.create({
active: false,
url: 'http://stackoveflow.com/robots.txt'
}, function(tab) {
chrome.tabs.executeScript(tab.id, {
code: 'localStorage.setItem("key", "value");'
}, function() {
chrome.tabs.remove(tab.id);
});
});
- 1. Nginx URL masking su un dominio diverso
- 2. Rails Devise: Login da un dominio diverso
- 3. Leggere cookie da un dominio diverso?
- 4. Lettura di un cookie da un dominio diverso
- 5. Spring WebSocket Connessione con SockJS a un dominio diverso
- 6. Wordpress wp-admin mi reindirizza a un dominio diverso
- 7. SSL iframe in e SSL pagina da un dominio diverso
- 8. Estensione Chrome di Google: archiviazione locale
- 9. inject script all'interno di iframe di dominio diverso
- 10. Un codice JavaScript ospitato su un dominio diverso può leggere/modificare il DOM di un altro dominio?
- 11. L'apertura di un file PDF in Chrome locale
- 12. IIS7 URL Rewriting di dominio diverso, corrispondenza esatta
- 13. Scrittura di un parser semplice
- 14. document.documentElement.scrollTop valore restituito diverso in Chrome
- 15. perché jquery .height() ottiene un risultato diverso su chrome?
- 16. Posso impersonare un utente su un diverso dominio di Active Directory in .NET?
- 17. Accedi all'estensione Chrome con un utente Google diverso da quello utilizzato da Chrome
- 18. Chrome getUserMedia Non richiesta autorizzazione locale
- 19. Archiviazione locale nelle app chrome utilizzando Dart
- 20. Il browser Chrome non apprezza un dominio con .loc TLD (per il test del dominio localhost) senza http: // - come risolvere?
- 21. Reindirizzamento di un URL di un file locale utilizzando l'API webRequest per estensioni di Chrome
- 22. Come visualizzare/verificare l'archiviazione locale di un'estensione di Chrome?
- 23. La raccolta dati javascript di Chrome funziona in modo diverso?
- 24. Lettura e scrittura nello stesso file con diverso processo
- 25. Chrome genera i CSS in modo diverso online o offline?
- 26. Come consentire a un Iframe secondario di chiamare una funzione nella relativa finestra padre da un dominio diverso
- 27. Ottieni file locale all'interno della cartella di estensione in Chrome
- 28. Le estensioni di Chrome hanno accesso all'archivio locale?
- 29. Impersonare un utente Windows o Active Directory da un dominio diverso e non attendibile
- 30. Scrittura di dati in un file di testo locale con javascript
Certamente questa sembra una soluzione praticabile. Anche se il problema che ho adesso è che ho bisogno di farlo da una pagina di sfondo. La creazione di una scheda intactive mostrerà qualcosa all'utente. Le schede fuori schermo non funzionano con le pagine di sfondo. Window.open() ovviamente non è una soluzione. Proverò comunque l'iFrame e ti farò sapere come va. – budsiya