从iframe向select元素添加选项时,我们遇到了问题.该代码在Chrome,Firefox和Opera中运行良好,但在IE11中,我们在尝试从父窗口访问最近创建的选项时得到"SCRIPT70:Permision denied".
我们需要的是向选择元素添加选项从列表中选择它们.列表显示在灯箱(带有iframe)中,当选择一个元素时,必须将其添加到select元素,然后关闭灯箱(并销毁iframe).我们拥有的是这样的(简化):
父窗口:
和iframe.html:
Add 4 Add 5 Add 6
如果您选择iframe的任何项目,该选项将添加到select元素并且iframe将被销毁.现在,如果您访问附加到select元素的onchange事件中最近添加的选项,则会得到"SCRIPT70:Permision denied".而最奇怪的是,它不会在第一次触发事件时发生.您需要至少触发两次onchange事件才能获得错误.
你可以看到一个工作小提琴
如果我们改变选项添加到select元素的方式,它就像一个魅力.
//dropdown.options[dropdown.options.length] = opt; dropdown.appendChild(opt);
如果iframe没有被破坏,而是被隐藏
如果在附加到另一个对象的事件中访问该选项(即锚点的onclick事件)
我希望有人(也许是一些在IE团队工作的微软员工)可以解释这种奇怪行为的细节.