当前位置: 首页 > 图文教程 > 网络编程 > Javascript > IE5中用JavaScript跨frame加option问题

Javascript
常用JS加密编码算法代码
js之完全兼容ie与firefox的拖动层代码[测试好用]
用javascript getComputedStyle获取和设置style的原理
ppk谈JavaScript style属性
JavaScript更改class和id的方法
js数据向上翻滚_数据滚动
javascript弹出一个层并增加一个覆盖层
可浮动QQ在线客服
jabsorb笔记_几个小例子
js快速与任意QQ号码建立临时对话
javascript得到XML某节点的子节点个数的脚本
js验证符合用户体验的网页表单特效
限制复选框的最大可选数的js代码
Javascript调试脚本的经验之谈
用js统计用户下载网页所需时间的脚本
javascript表单域与json数据间的交互
Javascript循环绑定事件的示例代码
表单Form的submit事件不响应的解决方法
JAVASCRIPT下判断IE与FF的比较简单的方式
javascript检查日期格式的函数[比较全]

Javascript 中的 IE5中用JavaScript跨frame加option问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 423 ::
收藏到网摘: n/a

跨frame加option,以下代码在IE5中会出错,但在IE4、IE6、Opera6、NNx中都没有问题:

<script>
function addOption(aSelect, optionId, optionName) { newOption = new Option(optionName, optionId); aSelect.options[aSelect.options.length] = newOption;
}
</script>


这样才是对的:
<script>
function addOption(aSelect, optionId, optionName) { ownerWindow = aSelect.document.parentWindow; ownerWindow.newOption = new Option(optionName, optionId); aSelect.options[aSelect.options.length] = ownerWindow.newOption;
}
function crossFrameAddOption() { var aSelect = parent.otherFrameName.document.forms[0].theSelectName; addOption(aSelect , "id"+ aSelect.options.length, "name"+ aSelect.options.length);
}
</script>
<input type="button" onClick="crossFrameAddOption();" value="test">

微软的解释如下: In general, at least in the older browser versions, performance seems to improve if you call methods on the target frame if they are stored there as well. This is particularly relevant when trying to add options to a select box in another frame. Make sure you create the option in that other frame so you are adding it to a local select box, instead of trying to cross frame boundaries.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebteam/html/Webteam02052002.asp