您好我有一个执行操作的函数,但该函数的名称在变量...
中下面的代码将获取URL的散列部分示例:#JHON并删除#并将其存储在URLHASH变量中。例如:JHON
var urlhash = document.location.hash;
urlhash = urlhash.replace(/^.*#/, '');
总是在变量内部有一个函数名称,我希望将该变量中的值作为函数名调用
window.onload=function() {
Value inside URLHASH variable should run as a name of a variable. example: jhon();
};
有可能吗?我尝试了一些代码,但它将变量名称作为函数而不是变量中的值。帮助我..
答案 0 :(得分:4)
答案 1 :(得分:0)
您可以像访问数组索引一样访问对象的属性,例如,您可以这样运行getElementById
:
document["getElementById"]("#myid");
因此&安培;如果您事先知道该函数将成为哪个对象,则可以通过这种方式访问它。全局范围内的函数是window对象的方法。但是,如果哈希可能包含#document.write()
之类的表达式,则必须进行一些解析。它可以像这样工作
window.onload=function() {
var urlhash = document.location.hash, current_element = window;
urlhash = urlhash.replace(/^.*#/, '');
elements = urlhash.split(".");
for(var i=0; i<elements.length; i++){
current_element = current_element[elements[i]];
}
//execute the actual function
current_element();
};