如何将字符串集成到javascript函数名称中?

时间:2015-07-15 21:48:57

标签: javascript php iframe

我很难搞清楚这一个。我是一个对JS几乎一无所知的人,所以请放轻松对待我; - )

所以基本上,我有一个包含4个iframe的页面。在某些情况下,我需要链接来同时更改两个iframe。到目前为止,我一直在使用我在网上找到的这个脚本:

<script language="javascript">
function loadTwo(iframe1URL, iframe2URL)
    {
    parent.main.location.href=iframe1URL;
    parent.right.location.href=iframe2URL;
    }
</script>

这很有效。

然而,我现在面临的情况是,我需要修改'left'和'main'而不是改变'main'和'right'iframes。对于所有其他情况,我也需要保留上述内容。

所以,我写了这个:

<script language="javascript">
var jssec = "<?php echo $section;?>";
var jslet = "<?php echo $flett;?>";

if(jssec == 'showlist' && jslet != '')
    {
    var panel1 = 'left';
    var panel2 = 'main';
    }
else
    {
    var panel1 = 'main';
    var panel2 = 'right';
    }

function loadTwo(iframe1URL, iframe2URL)
    {
    parent.panel1.location.href=iframe1URL;
    parent.panel2.location.href=iframe2URL;
    }
</script>

第一部分工作正常。但功能本身不再有效。我猜我没有正确整合字符串。

我已经尝试使用谷歌搜索,但我发现的结果是略有不同的情况,比如当字符串包含函数的名称时,这不是我在这里所拥有的......

那我怎么能得到panel1&amp; panel2在这个函数中工作?

谢谢!

2 个答案:

答案 0 :(得分:0)

使用数组表示法:

 parent[panel1].location.href=iframe1URL;
       ^------^

这可以将panel1视为变量,而不是&#34;键&#34;名称。例如这两个在执行方面是相同的:

 parent['panel1']
 parent.panel1

答案 1 :(得分:0)

你有一个范围问题!

请务必在函数之外声明变量。

//declare them here!!
var panel1;
var panel2;

if (blah) {
    panel1 = "something";
    panel2 = "somethingelse";
} else {
    //other option
}

//continue code

初始化变量只是空桶,直到你把它们放入其中,但是从一种接受负数组索引的语言中,我不认为这应该是令人惊讶的:P

然后该函数应该能够读取它们。如果不能,则将它们传递给函数的参数,就像使用其他数据一样。