-1

次の JavaScript イベント ハンドラーを使用して、データベースに動的に入力された利用できない画像を処理しています。

<head>
<script type="text/javascript">
  function blank_image_handler() {
    document.getElementById("imageplaceholder").style.display = "none";
  }
</script>

<body>
<div id="imageplaceholder"> <img src="image/thumbnail/<?php echo $row_images['image_link']; ?>" alt="<?php echo $row_images['image_caption']; ?>" onerror='blank_image_handler();' /> </div>
</body>

このイベント ハンドラーは目的を適切に果たしていますが、w3c html 検証中に検証されません。

検証中に受け取るエラーはthere is no attribute "onerror"

ところで、私のドキュメントタイプは xhtml transitional です

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

4

3 に答える 3

1

あなたの DTD はhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdですxhtml1/dtds.html#dtdentry_xhtml1-transitional.dtd_events 「onerror」イベントがないため、w3c バリデーターはエラーを報告します。

于 2012-09-22T12:30:49.783 に答える
1

onerrorブラウザーが実装する可能性があるとしても、仕様には属性はありません。

より良いバージョンは、次のようなことです。

<script type="text/javascript">
   function blank_image_handler() 
   {
      document.getElementById("imageplaceholder").style.display = "none";
   }

   var image = document.getElementById("myImage");
   image.addEventListener('error', blank_image_handler, true);
</script>

もちろん、その場合は画像に id を指定する必要がありますmyImage。そして、スクリプトを html の最後に移動する必要があります (とにかく推奨されます)。

于 2012-09-22T12:30:54.587 に答える
0

「onerror」を使用する代わりに、script タグで次のことができます。

  document.getElementById("imageplaceholder").addEventListener("error",blank_image_handler,false);
于 2012-09-22T12:32:27.693 に答える