我正在尝试在我的页面的onload上动态创建这个html元素,但是;当我运行它时,代码不能在IE8上工作,但在firefox,safari和其他方面没问题。
function getmovie() {
var container = document.getElementById("container");
if (!container)
return;
var object = document.createElement("object");
object.setAttribute("width", "512");
object.setAttribute("height", "296");
var param1 = document.createElement("param");
param1.setAttribute("name", "movie");
param1.setAttribute("value", "url");
var param2 = document.createElement("param");
param2.setAttribute("name", "allowFullScreen");
param2.setAttribute("value", "true");
var embed = document.createElement("embed");
embed.setAttribute("src", "my url");
embed.setAttribute("type", "application/x-shockwave-flash");
embed.setAttribute("allowFullScreen", "true");
embed.setAttribute("width", "512");
embed.setAttribute("height", "296");
object.appendChild(param1);
object.appendChild(param2);
object.appendChild(embed);
container.appendChild(object);
}
任何人都可以更正我的代码吗?
答案 0 :(得分:3)
除非您有充分的理由手动构建包含DOM元素的Flash,否则请考虑使用SWFObject之类的框架替换代码,以便为您完成所有“脏工作”。
swfobject.embedSWF("flashmovie.swf", "container", "512", "296", "9.0.0",
"expressInstall.swf", { allowFullScreen : true });
答案 1 :(得分:1)
您无法使用name
.setAttribute('name', value);
属性
您需要使用:
param1.name = 'movie';//works
param1.setAttribute("name", "movie");//will fail
注意:this bug was fixed in IE8(只要您在IE8标准模式下运行)
答案 2 :(得分:0)
这可能是原因吗?
如果不是这种情况,请尝试设置object标记的codebase和classid属性 对象
object.setAttribute("codebase", "http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab");
object.setAttribute("classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000");