在IE6中访问JavaScript对象属性的方法
问题描述:
我有一个JavaScript对象,有一些属性。可以说:在IE6中访问JavaScript对象属性的方法
var haystack = {
foo: {value: "fooooo"},
bar: {value: "baaaaa"}
};
现在,我想访问其中的一个属性,但我不知道哪一个。幸运的是,这个变量的作用:
var needle = "foo";
在现代浏览器中我似乎能够做到以下几点,它的工作原理:
haystack[needle].value; # returns "fooooo"
但在IE6它抛出一个不稳定,haystack[...] is null or not an object
。
有没有办法实现我想在IE6中实现的目标?如果是这样,怎么会这样?
编辑 - 响应下面的留言中加入更多的信息...
我想实现实际上与CKEditor的。我没有写过一个在iframe中打开的插件图像管理器。
然后,我想要实现的是将选定的图像放回到CKEditor的正确实例中(并且在某些页面上可以有多个实例)。
我已经做了什么(我知道这是一个丑陋的黑客攻击),当iframe被打开时,我在它旁边放置了一个带有实例名称的隐藏字段。所以父页面包含一些类似这样的标记:
<iframe><!-- Image manager --></iframe>
<input type="hidden" id="ckinstance" value="article_body" />
那么,选择图像时要插入我有一些JavaScript看起来像这样的iframe中:
var CKEDITOR = window.parent.CKEDITOR;
var instance = window.parent.$('#ckinstance').val();
var img = '<img src="/whatevers/been/selected" />';
CKEDITOR.instances[instance].insertHtml(img);
window.parent.$.modal.close();
这工作正常在FF,铬等,只是IE6与抱怨:
CKEDITOR.instances[...] is null or not an object.
EDIT 2
我已经只是做了一些调试,实际上它看起来像IE6在window.parent.$('#ckinstance').val()
上失败,并且返回undefined。
所以我描述的原始问题根本就不是问题。
还需要什么帮助:)
答
当你花了几个小时抓耳挠腮过的东西,才实现了解决方案,这是相当恼人的是:
Tools > Internet Options > Delete Files
没有理由不会工作,它方括号表示不是现代的..你能提供一个例子吗? – meandmycode 2010-03-23 18:26:28
是的,这也应该在IE6中工作。你能举一个例子吗? – 2010-03-23 18:29:01
SSCCE给你:http://jsbin.com/uzomo3/。在IE6中运行良好。 – 2010-03-23 18:41:38