我正在创建一个脚本,该脚本应该创建嵌入式 SWF,并且如果用户没有可用的 Flash,则还使用图像作为后备。由于我不允许使用任何其他库,例如 SWFobject,因此我无法使用诸如 createElement/appendChild/setAttribute 之类的 DOM 技术。
我一直在使用这篇很棒的博客文章: 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);
}