Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将字符串集成到javascript函数名中?_Javascript_Php_Iframe - Fatal编程技术网

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

如何将字符串集成到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

我很难弄明白这一点。我是一个php的家伙,对JS几乎一无所知,所以请对我放轻松;-)

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

<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()应该可以很好地访问它们。