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

Javascript
分时段切换CSS(JavaScript,ASP,PHP)
手把手教你用JS创建幻灯片特效
Ajax和CSS设计的表格实例
JS获得CSS中声明的特定样式中的某属性值
css和Ajax制作的表格
CSS初学:如何修改Zblog中的CSS
setAttribute方法实现网页两种样式表
JS和HTML分离:注册事件的方法进行封装
网页整理的Javascript的技巧代码
使用JavaScript数组上的经验之谈
AJAX结合CSS实现的网页Tab选项卡效果
JS教程:thickbox弹出框效果
IE和Firefox在JavaScript语法上不同的7个方面
WEB前端开发高性能优化:JavaScript的优化细节
基于jquery的上传插件Uploadify
7个在IE和Firefox中不同的JavaScript语法
JS函数:动态添加CSS样式表
在IE中使用JavaScript(一)
在IE中使用JavaScript(二)
JavaScript[对象.属性]集锦之四

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 193 ::
收藏到网摘: 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