Firefox a le Sandbox et evalInSandbox(). Chrome a une exécution en sandbox dans ses scripts de contenu (ils appellent cela une exécution isolée). Je cherche la même chose dans une extension de navigateur IE.Exécution Javascript en mode bac à sable dans une extension Internet Explorer (BHO)
Je peux charger un fichier javascript, puis appeler evalScript(), mais le code s'exécute dans le même environnement que javascript qui existe sur la page. J'ai besoin d'un moyen d'exécuter ma bibliothèque (qui inclut et est basé sur jQuery) dans un environnement en sandbox/isolé, tout en lui permettant de modifier le DOM comme s'il était en cours d'exécution sur la page. Jint semble prometteur, mais ne peut pas évaluer actuellement jQuery. (Ils peuvent l'analyser.)
Comment est-ce que je peux faire ceci?
Le monde isolé de Chrome: http://code.google.com/chrome/extensions/content_scripts.html#execution-environment "Les scripts de contenu s'exécutent dans un environnement spécial appelé" monde isolé ". la page dans laquelle ils sont injectés, mais pas les variables ou fonctions JavaScript créées par la page. " – TelegramSam
evalInSandbox de Firefox: https://developer.mozilla.org/En/Components.utils.evalInSandbox Cette méthode est utilisée par GreaseMonkey pour permettre l'exécution de javascript en dehors du contexte de la page. Passer dans le DOM en tant que variable permet au script de modifier le DOM sans permettre l'accès javascript de la page à ses propres méthodes et variables. Cela permet au code en mode bac à sable de planter des balises de script et de charger du contenu dans la page principale, mais cela ne me concerne pas. – TelegramSam
Je ne suis pas convaincu qu'evalInSandbox fonctionne vraiment comme vous le pensez; voir l'exemple de code dans la section Sécurité. Bien que je ne sois pas un expert, je crois comprendre qu'evalInSandbox est principalement utile pour permettre à JS qui s'exécuterait autrement dans la zone Chrome de confiance totale de s'exécuter à la place dans la zone de confiance limitée du document actif. – EricLaw