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

Javascript
JavaScript教程:浅析JS运行机制
JavaScript类型检测小结
JavaScript内置对象:arguments
编写复杂环境下不出错的Javascript代码
掌握JavaScript语言
IE7中网页动态创建iframe时边框问题
总结常用JavaScript语法107条
AJAX教程(1):AJAX简介
AJAX教程(2):AJAX Http请求
AJAX教程(3):AJAX实例
AJAX教程(4):AJAX 浏览器支持
AJAX教程(5):AJAX-XMLHttpRequest 对象
AJAX教程(6):AJAX - 请求服务器
AJAX教程(7):AJAX - 服务器端的脚本
AJAX教程(8):AJAX 请求实例
AJAX教程(9):AJAX 请求 源代码
AJAX教程(10):AJAX 数据库实例
AJAX教程(11):AJAX XML 实例
AJAX教程(12):AJAX ResponseXML 实例
AJAX教程(13):通过XMLHTTP把文本文件载入HTML元素

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


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