JavaScript:当我从iframe函数传递数组时,数组会丢失他的类型!
我有一个表单中的iframe。 iframe包含一些我想通过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的func?
感谢帮助。
因为每个页面都有一个带有自己的“Array”函数的全局上下文,所以如果一个页面上的代码将数组传递给另一个页面上的函数,则测试“array instanceof Array”将失败。 对于数组,你可以这样做:
var arr = top.frames["sup_search"].getIDS2();
var isArray = arr && Object.prototype.toString.call(arr)=="[object Array]";
它感觉不舒服,但它的作品。
@darin谢谢你的回答。 你一定会发现问题我想要做一些演员。 我需要把它看作一个像数组一样的数据源。 我写这样的代码:
var arr = new Array(SuppliersIDs);
结果是对象数组不是整数的原始数组。
我找到了使用jquery访问iframe函数的方法
$(this).contents()[0].defaultView.yourFunc()
链接地址: http://www.djcxy.com/p/4745.html
上一篇: JavaScript: when I pass array from iframe function the array lose his type!