当前位置:  开发笔记 > 编程语言 > 正文

JavaScript:当我从iframe函数传递数组时,数组会失去他的类型!

如何解决《JavaScript:当我从iframe函数传递数组时,数组会失去他的类型!》经验,为你挑选了1个好方法。

我在表单中有一个iframe.iframe包含一些我希望通过Array实例传递给父表单的信息.问题:Array实例丢失了它的类型并成为一个对象!iframe功能:

function getIDS2() { return new Array(); }

父呼叫代码:

alert(top.frames["sup_search"].getIDS2() instanceof Array);

当然,警报的答案是错误的...所以,我可以通过这样做来解决它:

var arr = [];
for(var i =0; i < SuppliersIDs.length; i+=1) {
    arr.push(SuppliersIDs[i]);
}

其中,SuppliersID是交付的数组,arr是新的真实类型数组.但为什么这不符合我的要求呢?顺便说一下,有没有办法用jQuery访问iframe函数?

感谢帮助.



1> Darin Dimitr..:

因为每个页面都有一个带有自己的"Array"函数的全局上下文,如果一个页面上的代码将一个数组传递给另一个页面上的函数,则测试"array instanceof Array"将失败.对于Array,您可以这样做:

var arr = top.frames["sup_search"].getIDS2();
var isArray = arr && Object.prototype.toString.call(arr)=="[object Array]";

它感觉很hacky但它​​的工作原理.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有