ホームページ > 記事 > ウェブフロントエンド > JS コードは、ie8 で document.getElementById(...) が空であるか、オブジェクトではないというエラーを報告します。
IE8 では、次のコードに示すように、ドキュメント タイプの宣言がより厳密になっています。
<input type='text' name='os' value='Windows平台' style='width:100px' /> <script type="text/javascript"> function osdo(str){ document.getElementById("os").value=str; } </script> <input name="ostmp" type="radio" value="" onclick="osdo('')" />清空 <input name="ostmp" type="radio" value="Windows平台" onclick="osdo('Windows平台')" /> Windows平台 <input name="ostmp" type="radio" value="" onclick="osdo('S60v2')" />S60v2 <input name="ostmp" type="radio" value="" onclick="osdo('S60v3')" />S60v3 <input name="ostmp" type="radio" value="" onclick="osdo('CHM')" />CHM <input name="ostmp" type="radio" value="" onclick="osdo('PDF')" />PDF <input name="ostmp" type="radio" value="" onclick="osdo('PPT')" />PPT <input name="ostmp" type="radio" value="" onclick="osdo('DOC')" />WORD <input name="ostmp" type="radio" value="" onclick="osdo('EXCEL')" />EXCEL <input name="ostmp" type="radio" value="" onclick="osdo('asp')" />asp <input name="ostmp" type="radio" value="" onclick="osdo('asp+access')" />asp+access <input name="ostmp" type="radio" value="" onclick="osdo('asp+sqlserver')" />asp+sqlserver <input name="ostmp" type="radio" value="" onclick="osdo('asp+sql/access')" /> asp+sql/access <strong>php源码</strong> <input name="ostmp" type="radio" value="" onclick="osdo('php')" />php <input name="ostmp" type="radio" value="" onclick="osdo('php+mysql')" /> php+mysql<input name="ostmp" type="radio" value="" onclick="osdo('jsp')" />jsp <strong>asp.net源码</strong> <input name="ostmp" type="radio" value="" onclick="osdo('asp.net')" />asp.net <input name="ostmp" type="radio" value="" onclick="osdo('asp.net+access')" />asp.net+access <input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql')" />asp.net+sql <input name="ostmp" type="radio" value="" onclick="osdo('asp.net+sql/access')" />asp.net+sql/access
このコードは、ie7 と ie8 の両方で実行できることがわかります。次のコード
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
に宣言ドキュメントを追加し、上記のドキュメント型宣言を追加します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 运行环境: 清空 Windows平台 S60v2 S60v3 CHM PDF PPT WORD EXCEL asp asp+access asp+sqlserver asp+sql/access php源码 php php+mysqljsp asp.net源码 asp.net asp.net+access asp.net+sql asp.net+sql/access
プロンプト document.getElementById(...) が空であるか、オブジェクトではない場合に解決策が見つかります
div CSS レイアウトを使用しているため、ページ内にドキュメント宣言がある場合、ドキュメントが宣言されていないため、ページの一部が異なります。
次のコードを先頭に追加できます
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
完全なコード
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 运行环境: 清空 Windows平台 S60v2 S60v3 CHM PDF PPT WORD EXCEL asp asp+access asp+sqlserver asp+sql/access php源码 php php+mysqljsp asp.net源码 asp.net asp.net+access asp.net+sql asp.net+sql/access