我正在创建一个应该创建嵌入式SWF的脚本,并且如果用户没有可用的Flash,也可以使用图像作为后备。由于我不被允许使用任何其他类似SWFobject的库,所以我被困在使用DOM技术(如createElement/appendChild/setAttribute)中。使用createElement在IE8或更低版本中为swf添加后备图像?
我一直在使用这个伟大的博客文章: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);
}