3
我想在全局函數中獲取腳本的原始文件名。如何在V8中獲取腳本的原始文件名
我試過下面的代碼,但filename.IsEmpty()返回true。
using namespace v8;
HandleScope handle_scope;
// Define Global Function 'func'
Handle<ObjectTemplate> global = ObjectTemplate::New();
auto func_name = v8::String::New("func");
auto func = v8::FunctionTemplate::New(
[](const v8::Arguments& args) -> v8::Handle<v8::Value>{
// I want to get Filename here.
auto filename = args.Callee()->GetScriptOrigin().ResourceName();
std::cout << filename.IsEmpty() << std::endl;
return v8::Undefined();
});
global->Set(func_name, func);
auto context = Context::New(nullptr, global);
Context::Scope context_scope(context);
auto source = String::New("func()");
// Set Filename
auto filename = String::New("abc.js");
auto script = v8::Script::Compile(source, filename);
script->Run();
context.Dispose();
有沒有正確的方法來訪問腳本的原始文件名?
我解決了這個由自己,但現在我不能發佈,因爲口碑的答案。 我會稍後發帖。 – h2so5 2012-04-06 10:08:20