我正在尝试使用ExternalInterface来修改HTML页面,但它只能调用Javascript函数而不能设置变量。我想要做的是使用函数设置变量,就像执行set_var('foo','bar')
相当于var foo='bar'
。
在PHP中,我可以创建一个函数:
function set_var($varname, $value)
{
$GLOBALS[$varname]=$value;
}
但我不知道如何在Javascript中执行此操作。也许是窗口对象的东西?
答案 0 :(得分:3)
您使用窗口对象在正确的路径上,通过包含变量名称的字符串在javascript中访问全局变量。
function set_var(varname, value) {
window[varname] = value;
}
在javascript中,您可以使用[]
访问对象的属性。如果属性的名称在变量中,则这是访问属性名称的唯一方法(使用eval()
除外)。由于全局变量是browser-javascript中window
对象的属性,这就是为什么这样做的原因。