如何将字符串集成到javascript函数名中?
我很难弄明白这一点。我是一个php的家伙,对JS几乎一无所知,所以请对我放轻松;-) 基本上,我有一个包含4个iFrame的页面。在某些情况下,我需要链接来同时更改两个iframe。到目前为止,我一直在使用我在网上找到的脚本:如何将字符串集成到javascript函数名中?,javascript,php,iframe,Javascript,Php,Iframe,我很难弄明白这一点。我是一个php的家伙,对JS几乎一无所知,所以请对我放轻松;-) 基本上,我有一个包含4个iFrame的页面。在某些情况下,我需要链接来同时更改两个iframe。到目前为止,我一直在使用我在网上找到的脚本: <script language="javascript"> function loadTwo(iframe1URL, iframe2URL) { parent.main.location.href=iframe1URL; parent
<script language="javascript">
function loadTwo(iframe1URL, iframe2URL)
{
parent.main.location.href=iframe1URL;
parent.right.location.href=iframe2URL;
}
</script>
函数loadTwo(iframe1URL、iframe2URL)
{
parent.main.location.href=iframe1URL;
parent.right.location.href=iframe2URL;
}
这很有效
但是,我现在面临的情况是,我需要修改“left”和“main”,而不是更改“main”和“right”iframe。我确实需要为所有其他情况保留上述内容
所以,我写了这个:
<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>
var jssec=“”;
var jslet=“”;
如果(jssec='showlist'&&jslet!='')
{
var panel1=‘左’;
var panel2='主要';
}
其他的
{
var panel1='主要';
var panel2='右';
}
函数loadTwo(iframe1URL、iframe2URL)
{
parent.panel1.location.href=iframe1URL;
parent.panel2.location.href=iframe2URL;
}
第一部分很好。但是这个功能本身已经不起作用了。我猜我没有正确地整合字符串
我试过用谷歌搜索这个函数,但我发现的结果是针对稍微不同的情况,比如当字符串包含函数名时,这与我在这里看到的不太一样
那么如何让panel1和panel2在这个函数中工作呢
谢谢 使用数组表示法:
parent[panel1].location.href=iframe1URL;
^------^
这样就可以将panel1
视为变量,而不是“键”名称。e、 g.这两个在执行方面是相同的:
parent['panel1']
parent.panel1
使用数组表示法:
parent[panel1].location.href=iframe1URL;
^------^
这样就可以将panel1
视为变量,而不是“键”名称。e、 g.这两个在执行方面是相同的:
parent['panel1']
parent.panel1
你似乎有一个范围问题 确保在函数之外声明变量
//declare them here!!
var panel1;
var panel2;
if (blah) {
panel1 = "something";
panel2 = "somethingelse";
} else {
//other option
}
//continue code
初始化变量将只是空的bucket,直到您在其中放入一些内容,但是从一种接受负数组索引的语言来看,我认为这并不奇怪:p
然后函数应该能够读取它们。如果不能,请像处理其他数据一样通过函数的参数传递它们。您似乎遇到了范围问题 确保在函数之外声明变量
//declare them here!!
var panel1;
var panel2;
if (blah) {
panel1 = "something";
panel2 = "somethingelse";
} else {
//other option
}
//continue code
初始化变量将只是空的bucket,直到您在其中放入一些内容,但是从一种接受负数组索引的语言来看,我认为这并不奇怪:p
然后函数应该能够读取它们。如果不能,请像处理其他数据一样通过函数参数传递它们。谢谢,Mark。这似乎解决了问题,但我现在遇到了第二个问题,在某些情况下,我会得到意想不到的结果(即,在错误的iframe中打开链接)。。。这可能与此无关,也可能是由代码中的其他内容引起的,目前还不确定,仍在挖掘…谢谢,马克。这似乎解决了问题,但我现在遇到了第二个问题,在某些情况下,我会得到意想不到的结果(即,在错误的iframe中打开链接)。。。但这可能与此无关,可能是由代码中的其他内容引起的,目前还不确定,仍在挖掘…panel1和panel2已在函数外部声明;loadTwo()应该可以很好地访问它们。panel1和panel2已经在函数外部声明;loadTwo()应该可以很好地访问它们。