replaceChild problema

  • Автор темы Taraskin
  • Дата начала

Taraskin

Guest
replaceChild problema

Есть простой код - который должен заменять
рисунки на флешки - но проблема в том что
заменяется только первый рисунок а не все!
ето баг replaceChild?
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  <script language="JavaScript">

      var images = document.getElementsByTagName("IMG");

      function img2flash(){

        var i = 0;
        while(i < images.length){

                var image = images[i];

                var imageId = image.getAttribute("id");
                if(imageId){
                    if(imageId.toUpperCase() == "FLASH"){

                        var src = image.getAttribute("fla_src");
                        var align = image.getAttribute("fla_align");
                        var menu = image.getAttribute("fla_menu");
                        var quality = image.getAttribute("fla_quality");
                        var loop = image.getAttribute("fla_loop");
                        var play = image.getAttribute("fla_play");
                        var bgcolor = image.getAttribute("fla_bgcolor");
                        var width = image.offsetWidth;
                        var height = image.offsetHeight;

                        var flashEmbed = document.createElement("EMBED");
                        flashEmbed.setAttribute("src",src);
                        flashEmbed.setAttribute("align",align);
                        flashEmbed.setAttribute("menu",menu);
                        flashEmbed.setAttribute("quality",quality);
                        flashEmbed.setAttribute("loop",loop);
                        flashEmbed.setAttribute("play",play);
                        flashEmbed.setAttribute("bgcolor",bgcolor);
                        flashEmbed.setAttribute("width",width);
                        flashEmbed.setAttribute("height",height);
                        flashEmbed.setAttribute("type","application/x-shockwave-flash");
                        flashEmbed.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");

                        var parentElement = image.parentNode;
                        parentElement.replaceChild(flashEmbed,image);



                    }
                }
                i++;
            }

      }


  </script>
</head>
<body>
    Flash 1<br><br>
    <img style="border:1px solid black" src="/masonry/widgets/simple/htmleditor/NETSCAPE/images/flash.gif" id="FLASH" fla_height="114" fla_width="114" fla_bgcolor="#66FF00" fla_play="true" fla_loop="true" fla_quality="high" fla_menu="true" fla_align="left" fla_src="" align="left" height="114" width="114"><br><br>
    <br><br><br><br><br><br>Flash 2<br><br>
    <img style="border:1px solid black" src="/masonry/widgets/simple/htmleditor/NETSCAPE/images/flash.gif" id="FLASH" fla_height="114" fla_width="114" fla_bgcolor="#66FF00" fla_play="true" fla_loop="true" fla_quality="high" fla_menu="true" fla_align="left" fla_src="" align="left" height="114" width="114"><br><br>
    <br><br><br><br><br><input type="button" value="Replace" onclick="img2flash()">
</body>
</html>
 

MiRacLe

просто Чудо
это скорей непонимание того что атрибут "id" должен быть уникальным в пределах документа.

Решение:
замени id на class.
в js свойство class доступно как obj.className.
 
Сверху