BUG: Internet Explorer nu reușește pentru a seta innerHTML proprietatea de selectare obiect

Traduceri articole Traduceri articole
ID articol: 276228
Măriți totul | Reduceți totul

În această pagină

SIMPTOME

Când setați proprietatea innerHTML de Selectare obiect, nu intră în vigoare modificările corect.

REZOLUȚIE

Dacă trebuie să utilizați innerHTML, o soluție este să utilizați un obiect Div wrap SELECTAȚI elementul și apoi setați proprietatea innerHTML pentru obiectul Div . De exemplu:
<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>
				

În mod ideal, ar trebui să utilizați o colecție de Opțiuni pentru a adăuga unui element SELECTAȚI opțiunile. Următorul cod arată trei moduri de a programatic adăuga opțiuni la elementul SELECTAȚI:
<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>
				

STARE

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate la începutul acestui articol.

INFORMAȚII SUPLIMENTARE

Pași pentru a Reproduce comportament

Codul e?antionului următor ilustrează acest bug-ul:
<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>
				

REFERINȚE

Pentru mai multe informații despre Selectare obiect, consultați următorul articol pe Rețea Microsoft pentru dezvoltatori (MSDN):
Selectați obiectul
Pentru mai multe informații despre colectarea Opțiuni , consultați următorul articol pe MSDN:
Opțiuni de colectare

Proprietă?i

ID articol: 276228 - Ultima examinare: 17 mai 2012 - Revizie: 2.0
Cuvinte cheie: 
kbbug kbdhtml kbnofix kbmt KB276228 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol:276228
Exonerare de răspundere pentru conținutul din Baza de cunoștințe referitor la produse cu suport retras
Acest articol se referă la produsele pentru care Microsoft nu mai oferă asistență. De aceea, acest articol se oferă astfel și nu se va mai actualiza.

Trimite?i feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com