[JS] Display werkt niet in IE

Pagina: 1
Acties:

  • Mebus
  • Registratie: September 2006
  • Laatst online: 19-11 19:24
Ik heb nu het volgende script:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    function Show_Vid(type, Yvid, Width, Height, VidTitle) {

        if(type == 'youtube') {

            YoutubeVidDiv = document.getElementById('YoutubeVidScreen');

            if(YoutubeVidDiv) { if(YoutubeVidDiv.style.display == 'block') { YoutubeVidDiv.style.display = 'none'; } }

            var ObjBody = document.getElementsByTagName('body').item(0);


            var ObjYoutubeVidScreen = document.createElement('div');

            ObjYoutubeVidScreen.setAttribute('id', 'YoutubeVidScreen');
            ObjYoutubeVidScreen.style.position          = 'absolute';
            ObjYoutubeVidScreen.style.display           = 'block';
            ObjYoutubeVidScreen.style.backgroundColor       = '#ffffff';
            ObjYoutubeVidScreen.style.left              = Math.round(document.body.offsetWidth/2)-Math.round(Width/2)+'px';
            ObjYoutubeVidScreen.style.top               = '10%';

            ObjBody.insertBefore(ObjYoutubeVidScreen, ObjBody.firstChild);

            var ObjYoutubeVidTitle = document.createElement('h2');

            ObjYoutubeVidTitle.style.paddingTop         = '4px';
            ObjYoutubeVidTitle.style.font               = 'normal normal 18px Tahoma, Verdana';
            ObjYoutubeVidTitle.style.opacity            = 0.6;
            ObjYoutubeVidTitle.style.MozOpacity         = 0.6;
            ObjYoutubeVidTitle.style.filter             = 'alpha(opacity='+0.6*100+')';
            ObjYoutubeVidTitle.style.textAlign          = 'center';
            ObjYoutubeVidTitle.innerHTML                = VidTitle;

            ObjYoutubeVidScreen.appendChild(ObjYoutubeVidTitle);

            var ObjYoutubeVid = document.createElement('div');

            ObjYoutubeVid.setAttribute('id', 'YoutubeVid');
            ObjYoutubeVid.style.padding             = '7px 7px 3px 7px';
            ObjYoutubeVid.innerHTML                 = '<embed src="http://www.youtube.com/v/'+Yvid+'&autoplay=1" type="application/x-shockwave-flash" wmode="transparent" width="'+Width+'" height="'+Height+'"><\/embed>';

            ObjYoutubeVidScreen.appendChild(ObjYoutubeVid);

        }

    }


In FireFox en Opera werkt dit script gewoon goed maar in Internet Explorer niet helemaal. Het probleem is dat als ik op een video klik en daarna op een ander video'tje klik het andere scherm niet verdwijnt waardoor je 2 videos door elkaar hoort....

Het heeft met style.display te maken denk ik, maar als ik YoutubeVidDiv.style.display alert zegt ie gewoon block en zouw die dan dus moeten veranderen in none maar dat gebeurt niet in Internet Explorer...

Handelt Internet Explorer style.display anders af mischien?

BABYMETAL LoL - Twitch


  • André
  • Registratie: Maart 2002
  • Laatst online: 27-11 10:04

André

Analytics dude

Aan die code kan het niet liggen, ik vermoedt dat de elementen niet goed afgesloten zijn oid. Heb je iets online staan?

  • Mebus
  • Registratie: September 2006
  • Laatst online: 19-11 19:24
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    function Show_Vid(type, Yvid, Width, Height, VidTitle) {

        if(type == 'youtube') {

            YoutubeVidDivScreen = document.getElementById('YoutubeVidScreen');
            YoutubeVidDivTitle  = document.getElementById('YoutubeVidTitle');
            YoutubeVidDiv       = document.getElementById('YoutubeVid');

            if(YoutubeVidDivScreen && YoutubeVidDivTitle && YoutubeVidDiv) {

                document.getElementById('YoutubeVid').innerHTML     = '<embed src="http://www.youtube.com/v/'+Yvid+'&autoplay=1" type="application/x-shockwave-flash" wmode="transparent" width="'+Width+'" height="'+Height+'"><\/embed>';
                document.getElementById('YoutubeVidTitle').innerHTML    = VidTitle;

            } else {

                var ObjBody     = document.getElementsByTagName('body').item(0);
                var ObjYoutubeVidScreen = document.createElement('div');
                var ObjYoutubeVidTitle  = document.createElement('h2');
                var ObjYoutubeVid   = document.createElement('div');

                ObjYoutubeVidScreen.setAttribute('id', 'YoutubeVidScreen');
                ObjYoutubeVidScreen.style.position          = 'absolute';
                ObjYoutubeVidScreen.style.display           = 'block';
                ObjYoutubeVidScreen.style.backgroundColor       = '#ffffff';
                ObjYoutubeVidScreen.style.left              = Math.round(document.body.offsetWidth/2)-Math.round(Width/2)+'px';
                ObjYoutubeVidScreen.style.top               = '10%';
                ObjBody.insertBefore(ObjYoutubeVidScreen, ObjBody.firstChild);


                ObjYoutubeVidTitle.setAttribute('id', 'YoutubeVidTitle');
                ObjYoutubeVidTitle.style.paddingTop         = '4px';
                ObjYoutubeVidTitle.style.font               = 'normal normal 18px Tahoma, Verdana';
                ObjYoutubeVidTitle.style.textAlign          = 'center'; 
                ObjYoutubeVidScreen.style.color             = '#666666';
                ObjYoutubeVidTitle.innerHTML                = VidTitle;

                ObjYoutubeVidScreen.appendChild(ObjYoutubeVidTitle);


                ObjYoutubeVid.setAttribute('id', 'YoutubeVid');
                ObjYoutubeVid.style.padding             = '7px 7px 3px 7px';
                ObjYoutubeVid.innerHTML                 = '<embed src="http://www.youtube.com/v/'+Yvid+'&autoplay=1" type="application/x-shockwave-flash" wmode="transparent" width="'+Width+'" height="'+Height+'"><\/embed>';

                ObjYoutubeVidScreen.appendChild(ObjYoutubeVid);

            }

        }

    }


Opgelost:)

[ Voor 168% gewijzigd door Mebus op 30-03-2007 16:04 ]

BABYMETAL LoL - Twitch