Firefox 22 及更高版本会发生简单的事情:如果您有一个带有名称的框架并将"name1"
其重命名为,"name2"
那么"name1"
仍然会出现在window.frames
数组中,但它的值将是undefined
. 如果你打电话,同样的事情会发生delete window.frames["name1"];
。
问题是在这种情况下,您不能直接将任何项目放入frames
具有名称的数组"name1"
中。您也无法将该属性添加name1
到该窗口对象中。这样做的唯一方法是将某些框架名称更改为"name1"
. "name1"
然而,我们当前的应用程序逻辑需要同时访问同一个帧"name2"
。
这里是示例: http: //jsfiddle.net/tigeral/2VwFV/2/ 。请比较 Firefox 21 和 22 中的结果。
有谁知道如何使跟随代码工作的解决方法?
window.frames["name1"].name = "name2";
// what I need to do here ?
window.frames["name1"] = window.frames["name2"];
alert(window.frames["name1"].name);
Ps 类似的问题已经发布在 Stack Overflow 上,但我的情况需要不同的解决方案。window.frames["frame_name"] 在框架被删除和重新添加时在 Firefox 中不起作用