Javascript 用函数设置变量

Javascript 用函数设置变量,javascript,externalinterface,Javascript,Externalinterface,我试图使用ExternalInterface修改HTML页面,但它只能调用Javascript函数,不能设置变量。我想做的是用一个函数设置一个变量,比如做set\u var('foo','bar')相当于var foo='bar'。 在PHP中,我可以创建如下函数: function set_var($varname, $value) { $GLOBALS[$varname]=$value; } 但我不知道如何在Javascript中实现这一点。可能与窗口对象有关?您使用窗口对象的路径

我试图使用ExternalInterface修改HTML页面,但它只能调用Javascript函数,不能设置变量。我想做的是用一个函数设置一个变量,比如做
set\u var('foo','bar')
相当于
var foo='bar'
。 在PHP中,我可以创建如下函数:

function set_var($varname, $value)
{
    $GLOBALS[$varname]=$value;
}

但我不知道如何在Javascript中实现这一点。可能与窗口对象有关?

您使用窗口对象的路径正确,可以通过包含变量名称的字符串访问javascript中的全局变量

function set_var(varname, value) {
    window[varname] = value;
}

在javascript中,您可以使用
[]
访问对象的属性。如果属性名称位于变量中,则这是访问属性名称的唯一方法(使用
eval()
)除外。由于全局变量是浏览器javascript中
窗口
对象上的属性,这就是为什么这样做的原因。

对于通过包含变量名称的字符串访问javascript中全局变量的窗口对象,您的路径是正确的

function set_var(varname, value) {
    window[varname] = value;
}

在javascript中,您可以使用
[]
访问对象的属性。如果属性名称位于变量中,则这是访问属性名称的唯一方法(使用
eval()
)除外。由于全局变量是浏览器javascript中
窗口
对象上的属性,这就是为什么这样做的原因。

对于通过包含变量名称的字符串访问javascript中全局变量的窗口对象,您的路径是正确的

function set_var(varname, value) {
    window[varname] = value;
}

在javascript中,您可以使用
[]
访问对象的属性。如果属性名称位于变量中,则这是访问属性名称的唯一方法(使用
eval()
)除外。由于全局变量是浏览器javascript中
窗口
对象上的属性,这就是为什么这样做的原因。

对于通过包含变量名称的字符串访问javascript中全局变量的窗口对象,您的路径是正确的

function set_var(varname, value) {
    window[varname] = value;
}



在javascript中,您可以使用
[]
访问对象的属性。如果属性名称位于变量中,则这是访问属性名称的唯一方法(使用
eval()
)除外。由于全局变量是浏览器javascript中
窗口
对象上的属性,这就是为什么这样做。

也许
窗口[varname]=value
?这将把全局变量
varname
设置为
value
@charlietfl-您确实需要
窗口部分,因为您在字符串中有一个变量名。除非您想使用
eval()
,否则您需要一个对象来访问变量,变量名为字符串way@jfriend00是的…我没读这个right@JanTuroň:请解释一下。我在那篇MDN文章中没有看到任何关于
configurable:false
的内容。使用
窗口[键]
对我来说一直都很有效。我做错事情了吗?可能是
window[varname]=value
?这将把全局变量
varname
设置为
value
@charlietfl-您确实需要
窗口部分,因为您在字符串中有一个变量名。除非您想使用
eval()
,否则您需要一个对象来访问变量,变量名为字符串way@jfriend00是的…我没读这个right@JanTuroň:请解释一下。我在那篇MDN文章中没有看到任何关于
configurable:false
的内容。使用
窗口[键]
对我来说一直都很有效。我做错事情了吗?可能是
window[varname]=value
?这将把全局变量
varname
设置为
value
@charlietfl-您确实需要
窗口部分,因为您在字符串中有一个变量名。除非您想使用
eval()
,否则您需要一个对象来访问变量,变量名为字符串way@jfriend00是的…我没读这个right@JanTuroň:请解释一下。我在那篇MDN文章中没有看到任何关于
configurable:false
的内容。使用
窗口[键]
对我来说一直都很有效。我做错事情了吗?可能是
window[varname]=value
?这将把全局变量
varname
设置为
value
@charlietfl-您确实需要
窗口部分,因为您在字符串中有一个变量名。除非您想使用
eval()
,否则您需要一个对象来访问变量,变量名为字符串way@jfriend00是的…我没读这个right@JanTuroň:请解释一下。我在那篇MDN文章中没有看到任何关于
configurable:false
的内容。使用
窗口[键]
对我来说一直都很有效。我做错事情了吗?谢谢!我以为[]只能用于数组@hidividedby5-它也可以用来访问对象的属性。我认为更合适的做法是鼓励上标将他的评论提升为答案,而不是在他的帖子发布两分钟后劫持他的评论…@JanTuroň-我没看到上标写了什么。我使用了OP的PHP,并将其放入javascript中。总体来看,这一切都很好。答案就是答案,如果没有现成的答案,那么添加一个正确的答案是一件好事(无论您是否看到评论),谢谢!我以为[]只能用于数组@hidividedby5-它也可以用来访问对象的属性。我认为更合适的做法是鼓励上标将他的评论提升为答案,而不是在他的帖子发布两分钟后劫持他的评论…@JanTuroň-我没看到上标写了什么。我使用了OP的PHP,并将其放入javascript中。总体来看,这一切都很好。答案就是答案