Come posso utilizzare jQuery nella mia estensione di Google Chrome senza conflitto con gli script nella pagina Web? perché quando uso jQuery e un altro script nella pagina Web utilizza $, lo script del contenuto muore o quella pagina muore,Come utilizzare jQuery nelle estensioni di Chrome contenuto contentscript senza conflitto
risposta
La risposta reale è che non è necessario utilizzare "funzioni private auto-gestite". È necessario comprendere che gli script di contenuto sono executed in isolation, quindi non possono essere in conflitto con le risorse utilizzate dai siti Web in base alla progettazione.
Se si desidera utilizzare una libreria nel proprio script di contenuto, il metodo preferito è semplicemente includerlo nella propria estensione/app e quindi caricarlo prima nel file manifest;
{
...
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"js": ["jquery.js", "myscript.js"]
}
]
...
}
Questo si tradurrà in jquery.js essere caricati al tuo ambiente di script contenuti privati e poi MyScript.js. Il codice sarà molto più pulito e modulare in quanto non contiene codice minuscolo per librerie esterne.
Fonte:https://developer.chrome.com/extensions/content_scripts
Questo non è un problema a causa del modo in cui gli script di contenuto modificano l'ambiente JavaScript. La sezione [ambiente di esecuzione] (http://code.google.com/chrome/extensions/content_scripts.html#execution-environment) della documentazione ufficiale copre abbastanza bene questo aspetto. – Alasdair
Vedo che il documento copre esattamente il caso di jquery: "Ad esempio, uno script di contenuto potrebbe includere JQuery v1 e la pagina potrebbe includere JQuery v2 e non sarebbero in conflitto l'uno con l'altro." –
jQuery stesso è solo una libreria e non apporta alcuna modifica a cui non viene detto. Come la maggior parte delle librerie, le librerie comuni espongono solo le sue funzionalità attraverso l'uso di una o più variabili globali. Se stai usando una libreria che cambia il DOM senza alcuna istruzione, probabilmente ne sarai consapevole poiché quel comportamento presumibilmente va di pari passo con la sua funzionalità. – Alasdair
- 1. Passaggio sincrono dei messaggi nelle estensioni chrome?
- 2. Google Chrome Socket API nelle estensioni
- 3. Disattiva la voce di menu "controlla popup" nelle estensioni chrome
- 4. Sviluppare Google Chrome Plugin (senza estensioni!)
- 5. Offline Google estensioni di Chrome
- 6. Ottenere le favicon in modo affidabile nelle estensioni di Chrome, chrome: // favicon?
- 7. Estensioni Chrome + Dart
- 8. Rilevamento estensioni browser Google Chrome
- 9. menu contestuali a estensioni di Chrome
- 10. Gli script di contenuto delle estensioni di Chrome possono accedere a window.opener?
- 11. Tentativo di utilizzare jquery ui nell'estensione di google chrome nel livello di contenuto
- 12. Estensioni private di Chrome per l'intranet aziendale
- 13. API di cronologia delle estensioni di Chrome
- 14. Integrate estensioni chrome con phantomjs
- 15. Ricarica di un ambiente di esecuzione script di contenuto estensioni di Chrome
- 16. Tasto di scelta rapida configurabile da tastiera senza utilizzare gli script di contenuto
- 17. Cross-Origin XMLHttpRequest in estensioni di Chrome
- 18. Le mappe di origine funzionano per le estensioni di Chrome?
- 19. Collegamento a chrome: // chrome/estensioni dalle opzioni di estensione pagina
- 20. Estensioni di Chrome scrivere sul file system
- 21. Tabulazioni passate, API estensioni di Google Chrome
- 22. Le estensioni di Chrome accedono agli iframe?
- 23. Copia nella clipboard in estensioni Chrome
- 24. conflitto jQuery e prototype.js, come mantenere jQuery come $?
- 25. getUserMedia() in chrome 47 senza utilizzare https
- 26. Come risolvere un'istanza in conflitto nelle famiglie di tipi?
- 27. A pagina evento di carico in estensioni di Chrome
- 28. Come supportare i parametri htmlAttributes nelle estensioni HtmlHelper?
- 29. AngularJS e conflitto jQuery
- 30. Jquery nessun conflitto
io non capisco. Gli script di contenuto e la pagina sono isolati. –