gpt4 book ai didi

JavaScript 函数在 IE 7 中不起作用

转载 作者:可可西里 更新时间:2023-11-01 13:40:47 26 4
gpt4 key购买 nike

谁能告诉我如何让这个脚本在 IE 7 中运行?当我运行它时,没有任何反应。

    <html>
<head>
<script language="JavaScript">
function moveSelectedOption() {
// Fetch references to the <select> elements.
var origin = document.getElementById('origin_select');
var target = document.getElementById('target_select');


// Fetch the selected option and clone it.
var option = origin.options[origin.selectedIndex];

var copy = option.cloneNode(true);

// Add the clone to the target element.
target.add(copy, null);
}
</script>
</head>
<body>
<select id="origin_select" multiple>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<select id="target_select" multiple>

<option value="C1">C1</option>
</select>
<button onclick="moveSelectedOption()">Add</button>
<!-- <input type="button" onClick="moveSelectedOption()" value="AddMeToo" /> this does not work either-->
</body>
</html>

最佳答案

首先,你不能使用add(option, null)在 IE-up-to-7 由于错误(你得到“类型不匹配”)。您将不得不使用 add(option) ,但这当然是非标准的并且在其他地方中断。所以为了安全起见,使用select.add(option, options.length) , 或 select.options[options.length]= option .

接下来,由于另一个错误(你得到“无效参数”),当该选项已经在 IE-up-to-7 中的选择中时(即使在克隆之后!),你不能向选择添加选项. IE对<option>的处理elements 在很多方面都是关闭的,其来源是 IE 的选择框是 native Windows 小部件,而不是浏览器实现的对象。因此,IE 的 HTMLOptionElement 接口(interface)只是一个外观,经常会出错。

处理选项元素的安全方法是每次都重新创建它们,或者使用 document.createElement并写下 valuetext属性,或使用老派 new Option() rahul 的回答中的构造函数。

最后,你不应该使用 selectedIndex<select multiple> 上.由于不一定存在唯一且唯一的选择,因此它在任何浏览器中都没有意义。 (例如,在没有选择的情况下单击 Add 按钮会产生错误。)相反,遍历所有选项并复制每个选项 .selected。 .

关于JavaScript 函数在 IE 7 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2606820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com