0

ラジオ タイプ ボタンで innerHTML を使用すると問題が発生します。

<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>

私の .js は次のようになります。

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;
} 

これは IE だけでは機能しません。何か助けはありますか?

4

3 に答える 3

2

まず、TABLE 内の直接の DIV が不正なマークアップであることを確認してください。

違法なマークアップを使用しないでください。ブラウザーはそれに対して異なる反応を示します (私は最近、IE がそれをレンダリングしようとしているときに、Opera にいくつかの違法なものを無視させました)。

IE は通常、それに値します。まず、正しいマークアップを取得してから、IE がどのように機能するかを確認してください。期待どおりに DOM をレンダリングできなかった可能性があります。

(FWIW、IEで遭遇したinnerHTMLレンダリングの問題がありますhttp://support.microsoft.com/kb/276228/が、SELECT要素の場合はここでは当てはまらないと思います)。

于 2010-04-04T12:44:22.487 に答える
1

問題は確かに table タグの innerHTML でした。IE は table タグを囲む innerHTML をサポートしておらず、今後のリリースでこの問題を解決する予定です。

回避策は、DOM メソッドを使用するか、テーブルを div で囲む最も簡単な方法です。

だから私は次のようになりました:

<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>

ラベルが画像に設定されている場合、ラベルを台無しにする別の IE バグがあります。ただ注意してください!私が IE は最低だと言っても、あなたは驚かないでしょう。

于 2010-02-21T09:07:54.877 に答える
0

これが少し遅れていることはわかっていますが、jQuery でこの問題を修正する方法は次のとおりです。

$("#tableName").html(DataToWrite);
于 2011-12-12T23:56:59.190 に答える