- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个脚本,该脚本应该创建嵌入式 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,但它不包含任何如何将链接/图像组合注入(inject)到 Internet Explorer 8 中的对象中的解决方案。
使用 createElement("a") 以及类似的图像并将其添加到任何其他 Div 元素都可以正常工作,但如果我尝试将其注入(inject)对象 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);
}
最佳答案
好吧,所以我必须调整我的脚本以匹配 pipwerks 博客文章中所述的最终结果。在检查 IE 时,我使用 insideHTML 声明了 flashObject,如下所示:
var fallback=false;
flashObject = (isIE) ? createIeObject() : document.createElement("object");
if(!isIE) {
flashObject.setAttribute("type", "application/x-shockwave-flash");
flashObject.setAttribute("data", "URL_TO_SWF");
fallback = true;
}
createIeObject 函数执行以下操作:
function createIeObject(){
var div = document.createElement("div");
div.innerHTML = "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'><param name='movie' value='URL_TO_SWF'><a href='URL_FOR_CLICK'><img src='URL_TO_FALLBACK_IMAGE' alt='' width='WIDTH' height='HEIGHT' border='0' /></a></object>";
return div.firstChild;
}
请注意,我在此段中添加了后备。我还必须在图像上使用宽度、高度和边框,否则 IE 会在所有内容周围添加烦人的蓝色边框。好吧,一切都会按我的计划进行吗?当然不是 =) IE8(也许还有其他版本)无法将任何子级附加到我最初使用 document.write 创建的 div,因为 DOM 在该状态下尚未完全加载。这可以通过将整个(几乎)事情包装在其中来解决:
onload = function(){}
我确实通过 DFP 广告管理系统进行了尝试,它至少可以在 IE7 及更高版本上运行。其他好人浏览器通过常规的appendChild添加他们的fallbakc,如原始问题中所述,我只是将它移动到if语句中,因为如果IE它会过时。
关于javascript - 使用 createElement 在 IE8 及更低版本中为 swf 添加后备图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12952385/
我正在评估 Amazon SWF 作为构建分布式工作流系统的选项。主要语言将是 Java,因此 Flow 框架是一个显而易见的选择。只有一件事让我感到困惑,在我推荐它作为我们架构中的关键组件之前,我会
我在将我的 swf 文件置于另一个 swf 文件之上时遇到问题。我在这里尝试了解决方案: http://jsfiddle.net/j08691/ezXjx/ #a { position
我正在处理一个项目,我需要打开一个 swf 文件,更改 swf 标签的内容 不接触其他标签 我试过“SwfDotNet 库”,但它不输出未知标签。例如,如果它遇到“EXPORTASSETS”标签,它不
希望这不会被视为两次问同样的问题...... 所以我正在开发一个 Flash 网站(在 AS2 中),它有一个外部索引 swf,它使用 loadMovie("subfoo1.swf", placeTo
我在使用 Flash 和 Flex 时遇到了一个非常奇怪的问题。在某些情况下,如果同时加载了另一个 SWF,则在运行时(使用 Loader)加载的 SWF 中的影片剪辑似乎无法实例化。这是重现错误的程
当我创建暂时隐藏在选项卡中的 SWF 对象时,因此在某些浏览器(如 FireFox)中未完全加载,我似乎无法找到方法来确定 SWF 是否已加载,因此我可以与它。 /* Generate SWF (on
我加载了一个外部 SWF。 外部 SWF 有一个嵌入的 DisplayObject (getChildAt(0)) 我得到了它的 Class 实例以下代码: public function g
这是一个更一般的问题,而不是“帮助修复代码”问题: 目标 父 swf a.swf 加载外部子 b.swf 子 swf 有跟踪语句:[timestamp][log level][class] msg 父
我想在显示swf文件的webview中显示另一个swf文件,并且我可以获取显示swf文件的路径,但是当我将另一个swf文件拖放到显示swf文件的webview时,swf文件无法获取打不开,为什么?以及
目标:无需 www.macromedia.com/support/documentation/上的任何特殊权限,即可从本地协议(protocol)(widget://、file://、chrome-e
我正在尝试通过 CSS(绝对定位)将透明 PNG 定位在 SWF 影片上。但是,当我将 PNG 直接放在 SWF 上时,SWF 上的所有单击操作似乎都被禁用了。 SWF 要求使用您的网络摄像头,但您无
我想知道是否有人知道以编程方式创建 Flash swf 文件的任何库。 或者用于从 svg 创建 swf。 最佳答案 这听起来对 swfmill 来说是一份完美的工作我想您会发现它可以让您同时执行两种
我有一个加载其他几个 swf 的主要“父” swf。如果主 swf 发生了什么事,我需要告诉其中一个子 swf。 反过来,这似乎效果很好。任何 child 都可以简单地 dispatchEvent()
概览: 我有一个 SWF 横幅广告模板,它从我开发的平台加载 JSON,然后循环浏览该 JSON 中指定的一些产品。每个产品都由您的标准标题、价格和图像组成。 在平台上,用户可以通过一些 UI 工具(
我一直在努力让 AS2 swf 在 AS3 swf 中正确加载 - 但没有成功... AS2 文件(这是一个相当大的应用程序,引用许多外部 xml 文件等)在 Flash Player 中启动时可以完
我正在尝试做这样的事情:拿一个 swf 文件损坏它,然后..在设备内部再次将其可读(未损坏)...我将使用我自己编写的设备指纹检查该设备是否可以恢复 swf.. 得到? 我可以这样做吗?有什么办法呢?
我需要从一些 swf 文件中提取所有文本。我使用 Java 是因为我有很多用这种语言开发的模块。因此,我在 Web 上搜索了所有专门用于处理 SWF 文件的免费 Java 库。最后,我找到了Stuar
我认为这个问题不言自明。以前有人这样做过吗? 更新:澄清我为什么需要这样做。我们有一个 AS1 - AS2 站点的单一 swf 庞然大物,带有大型视频库部分。客户想要更新视频部分,因为 AS2 代码无
有没有人成功使用过 [Flagstone Software][1] 的 Transform SWF for Java 库 [1]: http://www.flagstonesoftware.com/t
例如,隐藏一个简单的 youtube 嵌入 document.getElementById('youtube').style.display = 'block'; document.getElemen
我是一名优秀的程序员,十分优秀!