您目前已離線,請等候您的網際網路重新連線

錯誤: 無法設定 innerHTML 所選取的物件屬性的 Internet Explorer

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:276228
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。
徵狀
當您設定選取物件的innerHTML屬性時,所做的變更才會生效正確。
解決方案
如果您必須使用innerHTML,因應措施是使用Div物件換行的選取項目,然後設定 [ Div物件的innerHTML屬性。舉例如下:
<html><head><title>My Example</title><script language="Javascript">var origDivHTML;function init(){   origDivHTML = myDiv.innerHTML;}function setValues() {   var oldinnerHTML = "your original innerHTML: " + yourDiv.innerHTML ; 	   alert(oldinnerHTML);   yourDiv.innerHTML = origDivHTML;	    var curinnerHTML = "your current innerHTML: " + yourDiv.innerHTML ;    alert(curinnerHTML); }</script></head><body onload="init()"><div id="myDiv">  <select name="firstSelect" size="1" >    <option>11111</option>    <option>22222</option>    <option>33333</option>  </select></div><div id="yourDiv">  <select name="secondSelect" size="1" >    <option>aaaa</option>    <option>bbbb</option>    <option>cccc</option>  </select></div><button onclick = "setValues();">click me to set the values</button></body></html>				

在理想的情況下,您應該使用的選項集合來新增選取項目的選項。下列程式碼會顯示三種方法以程式設計方式將選項加入至選取的項目:
<HTML><HEAD><TITLE></TITLE></HEAD><BODY><script>function fill_select1() {	for(var i=0; i < 100; i++) {			select1.options[i] = new Option(i,i);		}}function fill_select2() {		var sOpts = "<SELECT>";		for (var i=0;i<100;i++)		{			sOpts += '<OPTION VALUE="' + i + '">' + i + '</OPTION>\n';		}			select2.outerHTML = sOpts  + "</SELECT>";}function fill_select3() {	for(var i=0; i < 100; i++) {		   var oOption = document.createElement("OPTION");		   oOption.text="Option:  " + i;		   oOption.value=i;		   document.all.select3.add(oOption)		}}</script><H2>SELECT Box Population</H2><SELECT id=select1 name=select1></SELECT><INPUT type="button" value="Populate with options list" id=button1 name=button1 onclick="fill_select1();"><BR><BR><SELECT id=select2 name=select2></SELECT> <INPUT type="button" value="Populate with outerHTML" id=button2 name=button2 onclick="fill_select2();"><BR><BR><SELECT id=select3 name=select3></SELECT><INPUT type="button" value="Populate with using createElement" id=button3 name=button3 onclick="fill_select3();"></BODY></HTML>				
狀況說明
Microsoft 已確認這是在本篇文章開頭所列的 Microsoft 產品中有錯誤。
其他相關資訊

若要重現問題的步驟

下列範例程式碼說明了這個問題:
<html><head><script language="JavaScript">  function test(){    var objSelect = document.all.idSelect;    var strOrigHTML     = objSelect.innerHTML;    objSelect.innerHTML = strOrigHTML;    var strNewHTML      = objSelect.innerHTML;    if (strNewHTML == strOrigHTML)        alert("Test passed.");    else        alert("Test failed: innerHTML = " + strNewHTML );}</script></head><body>  <select id="idSelect">    <option value="line1">Option 1</option>    <option value="line2">Option 2</option>  </select>  <input type="button" value="test" onClick="test()" /></body></html>				
参考
如需有關選取物件的詳細資訊,請參閱下面的文件 Microsoft 開發人員網路 (MSDN):如需有關的選項集合的詳細資訊,請參閱 MSDN 上的下列文件:

警告:本文為自動翻譯

內容

文章識別碼:276228 - 最後檢閱時間:05/17/2012 05:27:00 - 修訂: 2.0

  • kbbug kbdhtml kbnofix kbmt KB276228 KbMtzh
意見反應