我很难搞清楚这一个。我是一个对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在这个函数中工作?
谢谢!
答案 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
然后该函数应该能够读取它们。如果不能,则将它们传递给函数的参数,就像使用其他数据一样。