Comment inclure un autre fichier de script dans un fichier de script .js dans v8?
Il y a le tag < > en HTML mais comment cela peut-il être fait dans un programme embarqué v8?Comment incluez-vous un autre fichier js dans Google v8?
12
A
Répondre
22
Vous devez ajouter cette fonctionnalité manuellement, voici comment je l'ai fait:
Handle<Value> Include(const Arguments& args) {
for (int i = 0; i < args.Length(); i++) {
String::Utf8Value str(args[i]);
// load_file loads the file with this name into a string,
// I imagine you can write a function to do this :)
std::string js_file = load_file(*str);
if(js_file.length() > 0) {
Handle<String> source = String::New(js_file.c_str());
Handle<Script> script = Script::Compile(source);
return script->Run();
}
}
return Undefined();
}
Handle<ObjectTemplate> global = ObjectTemplate::New();
global->Set(String::New("include"), FunctionTemplate::New(Include));
Il ajoute essentiellement une fonction globalement accessible qui peut charger et exécuter un fichier javascript dans le contexte actuel. Je l'utilise avec mon projet, fonctionne comme un rêve.
// beginning of main javascript file
include("otherlib.js");
3
Si vous utilisez Node.js ou tout CommonsJS exécution conforme, vous pouvez utiliser require (module); Il ya un bon article à ce sujet au http://jherdman.ca/2010-04-05/understanding-nodejs-require/
Questions connexes
- 1. Moteur JavaScript V8 de Google dans .Net?
- 2. Comment dois-je inclure un fichier js d'un autre fichier js?
- 3. Comment utiliser un fichier .js?
- 4. Comment charger un fichier js avec javascript
- 5. Est-il possible de mettre du code Google Analytics dans un fichier JS externe?
- 6. Comment inclure un fichier AGI dans un autre fichier AGI?
- 7. CodeIgniter: Comment inclure un fichier .js dans la vue?
- 8. Vignette V8 Upgrade
- 9. Référence fichier JS dans d'autres fichiers JS et Intellisense
- 10. Comment recharger un module Python importé dans un autre fichier?
- 11. Comment puis-je inclure un fichier YAML dans un autre?
- 12. ID de contrôle asp.net dans un fichier JS séparé
- 13. Comment charger un fichier de propriétés dans Google App Engine?
- 14. comment créer un fichier Excel dans google app engine (python)?
- 15. comment utiliser gzip pour un fichier css/js en PHP?
- 16. Comment intégrer une sortie Google Map (ou un autre mappage SIG) dans un fichier PDF lorsque je le génère?
- 17. Problème incluant le fichier .js dans php
- 18. Jeter une exception JavaScript à partir du code C++ en utilisant Google V8
- 19. Comment faire référence à Canvas dans un autre fichier XAML?
- 20. Comment filtrer un fichier en utilisant un modèle dans un autre fichier en utilisant Python?
- 21. Comment puis-je créer une bibliothèque javascript dans un fichier séparé et "l'inclure" dans un autre fichier?
- 22. Y compris un fichier PHP dans un autre
- 23. Comment déboguer dans Firebug lorsque le code est dans un fichier JS séparé?
- 24. Comment afficher un autre fichier swf dans le webview qui montre un fichier swf?
- 25. Comment puis-je récupérer un objet d'un fichier swf dans un autre fichier swf?
- 26. Comment utiliser la fonction splice() de Linux pour copier un fichier dans un autre fichier?
- 27. onload à partir du fichier js externe
- 28. Vérification de la valeur de la variable JS dans un autre <script> Bloc
- 29. Vérifier le cache du navigateur pour un fichier js
- 30. Comment déplacer un fichier d'un serveur vers un autre serveur
Merci beaucoup :) –
On dirait que V8 a été mis à jour depuis que cette réponse a été postée. Vous avez maintenant besoin de l'accesseur Functiontemplate -> GetFunction() dans l'appel de 'Set': par ex. FunctionTemplate :: New (Include) -> GetFunction() –
Avec le dernier v8 d'aujourd'hui (Dec 17,2013), v8 :: Argument n'existe plus (a v8 :: internal :: Argument tu). Donc, l'argument v8 :: Argument & dans la déclaration d'argument de la fonction doit être changé en v8 :: FunctionCallbackInfo &. –
yoshi