IE innerHTML?

3 Cevap php

Ben radyo tipi düğmesi ile innerHTML kullanırken sorun yaşıyorum.

<table align="center">
 <div class='main'>
  <span id="js" class='info'>
   <label><input type="radio" name="js" value="0" size="<?php echo $row['size']; ?>" onclick="js(this.value, this.size);" /><img src="arrowup.png"/></label>
   <br />
   <label><input type="radio" name="js" value="1" size="<?php echo $row['size']; ?>" onclick="js(this.value, this.size);" /><img src="arrowdown.png"/></label>
  </span>
 </div>
</table>

. Benim js bu gibi görünüyor:

var xmlhttp;

function getVote(a,b) {
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)   {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="js.php";
url=url+"?js="+a;
url=url+"&id="+b;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged() {

  if (xmlhttp.readyState==4) {
  document.getElementById("js").innerHTML=xmlhttp.responseText;
  }
}

function GetXmlHttpObject() {
var objXMLHttp=null;
if (window.XMLHttpRequest)   {
  objXMLHttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)   {
  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
return objXMLHttp;
} 

Bu sadece IE çalışmıyor! Herhangi bir yardım?

3 Cevap

öncelikle, oldukça emin doğrudan bir tablo içinde bir DIV yasadışı biçimlendirme.

yasadışı biçimlendirme kullanmayın. tarayıcılar (Geçenlerde Opera IE işlemek için çalışırken bazı yasadışı şeyler görmezden yaşadım) buna farklı yanıt olacaktır.

IE genellikle bunu hak Tho, öncelikle biçimlendirme doğru almak ve sonra IE nasıl yaptığını görüyoruz. o beklediğiniz nasıl DOM işlemek için başarısız olabilir.

(FWIW, http://support.microsoft.com/kb/276228/ Ben IE ile karşı koşuyoruz bir innerHTML render sorun var, ancak SELECT elemanı için bu yüzden ben burada uygulanır sanmıyorum).

Sorun tablo etiketi gerçekten innerHTML oldu. IE bir tablo etiketi sarılı innerHTML desteklemiyor ne de onların gelecek sürümlerde bu sorunu çözmek niyetinde.

Geçici kullanım DOM yöntemleri veya en kolay yolu ya da şudur: Bir div etrafında tablo sarın.

Yani ile sona erdi:

<div id="js" align="center"><table>
        <span class='main'>
            <a onClick="getVote(this.value, this.size);" type="radio" value="0" size="<?php echo $row['id']; ?>" /><img src="arrowup.png"/></a>
            <br /><a onClick="getVote(this.value, this.size);" type="radio" value="1" size="<?php echo $row['id']; ?>" /><img src="arrowdown.png"/></a>
            </span>
</table></div>

Etiketin kadar vidaları onlar görüntü olarak ayarlanır eğer başka bir IE bug var. Sadece bir mezartaşı yukarıya! Ben IE berbat derken sürpriz olmayacak biliyorum!

Ben bu biraz geç ama burada jQuery ile bu sorunu düzeltmek için nasıl olduğunu biliyorum:

$("#tableName").html(DataToWrite);