我正在创建一个脚本,旨在创建嵌入式SWF,并在用户没有Flash可用时使用图像作为备选项。由于我不允许使用任何其他库,如SWFobject,所以我被困在使用DOM技术,例如createElement / appendChild / setAttribute。
我一直在使用这篇很棒的博客文章:http://pipwerks.com/2011/05/30/using-the-object-element-to-dynamically-embed-flash-swfs-in-internet-explorer/ 作为指南,并且我已经在所有经过测试的浏览器中成功运行Flash,但它并没有包括任何解决方案,可以在Internet Explorer 8中将链接/图像组合注入对象中。
使用createElement(“a”)和同样的方式添加图像,并将其添加到任何其他Div元素中都可以正常工作,但是如果我尝试将其注入对象中,则MSIE8会抛出“无效参数”的错误。
我还尝试创建一个带有ID的虚假参数,并尝试用我的链接/图像组合替换它,在我测试过的其他浏览器中可以工作,但在IE8中无法工作。对此有何想法将不胜感激。
这是我的代码(我正在使用js和PHP的组合来创建脚本):
var alink = document.createElement("a");
alink.setAttribute("href", "URL_TO_TARGET_SITE_OR_CLICK_COUNTER");
var alinkImage = document.createElement("img");
alinkImage.setAttribute("src", "URL_TO_IMAGE");
alinkImage.setAttribute("alt", "");
alinkImage.setAttribute("width", "IMAGE_WIDTH");
alinkImage.setAttribute("height", "IMAGE_HEIGHT");
alink.appendChild(alinkImage);
if(!IE8) {
flashObject.appendChild(alink);
document.getElementById('ad_filler_placeholder').appendChild(flashObject);
} else {
/* this code will be executed if IE8 or lower, sadly appending alink into flashobject fails */
flashObject.appendChild(alink);
document.getElementById('ad_filler_placeholder').appendChild(flashObject);
}