Internet Explorer hat Problem mit appendChild (?)
Nicci
- javascript
Hallo zusammen,
derzeit bastle ich an einem kleinen JavaScript, welches das Vorhandensein eines Flash-Plugins prüft und entsprechend handelt. Die Ausgabe erfolgt über die Funkionen des DOM.
Im Firefox funktioniert das Skript auch wie gedacht, im Internet Explorer jedoch nicht...
Entscheidend ist folgender Codeschnipsel:
var objAnzeige = document.getElementById('flash');
var objPosition = objAnzeige.firstChild;
var objFlash = document.createElement('object');
var objParamASA = document.createElement('param');
var objParamMovie = document.createElement('param');
var objParamQuality = document.createElement('param');
var objParamBgcolor = document.createElement('param');
var objEmbed = document.createElement('embed');
objFlash.setAttribute('classid', 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000');
objFlash.setAttribute('codebase', 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0');
objFlash.setAttribute('width', '1024');
objFlash.setAttribute('height', '768');
objFlash.setAttribute('id', 'flash_v4');
objFlash.setAttribute('align', 'middle');
objParamASA.setAttribute('allowScriptAccess', 'sameDomain');
objParamMovie.setAttribute('movie', 'flash_v4.swf');
objParamQuality.setAttribute('quality', 'high');
objParamBgcolor.setAttribute('bgcolor', '#ffffff');
objEmbed.setAttribute('src', 'flash_v4.swf');
objEmbed.setAttribute('quality', 'high');
objEmbed.setAttribute('bgcolor', '#ffffff');
objEmbed.setAttribute('width', '1024');
objEmbed.setAttribute('height', '768');
objEmbed.setAttribute('name', 'flash_v4');
objEmbed.setAttribute('align', 'middle');
objEmbed.setAttribute('allowScriptAccess', 'sameDomain');
objEmbed.setAttribute('type', 'application/x-shockwave-flash');
objEmbed.setAttribute('pluginspage', 'http://www.macromedia.com/go/getflashplayer');
objFlash.appendChild(objParamASA);
objFlash.appendChild(objParamMovie);
objFlash.appendChild(objParamQuality);
objFlash.appendChild(objParamBgcolor);
objFlash.appendChild(objEmbed);
objAnzeige.insertBefore(objFlash, objPosition);
Der Internetexplorer zeigt hier nur eine leere Seite an und meldet zudem "Ungültiges Argument" für die Zeile, in der "objFlash.appendChild(objParamMovie);" steht. Kommentiere ich diese aus, kommt die selbe Fehlermeldung für die nächste Zeile, und so weiter.
Es sollte doch aber möglich sein, einem Objekt mehr als ein Child-Element zuzuweisen?
Ist jemand schlauer als ich?
Nicci
Hi,
probiers mal mit innerHTML
var source = '<object>
<param attr="wert"></param>
<embed src="bla"></embed>
</object>
document.getElementById('wo_das_flash_hin_soll').innerHTML = source;
Ich hab mich auch schon oft rumgeärgert, löse das Problem dann meisten mit innerHTML.
Hoffe es klappt,
Grüße, Andi
Hi,
AFAIK hat der Internet-Explorer so ein paar Problemchen mit setAttribute. Vielleicht sind der Rest Folgefehler. Das Problem kann relativ einfach umgangen werden, wenn man auf das style-Objekt ausweicht.
MfG
Rouven