IE没有从Ajax响应中撤回Flash Object src

我正在尝试读取flash文件的src属性,我在url的响应中得到它并通过swfobject创建一个新文件。 但是当我读取embed标签的src时,它会返回“undefined”。 我的代码如下。

我正在发布post的页面,其中只有flash文件。

回应如下:

AJAX REsponse

     

脚本

 $.ajax({ url: flashUrl, type: "POST", dataType:"html", success: function(data, status, xhr) { var swfUrl = flashUrl.substr(0, flashUrl.lastIndexOf('/')) + "/" + $(data).find('embed').attr('src'); $('.content').html('
'); swfobject.embedSWF(swfUrl, "mySwf", "200", "200", '9.0.0', "/resources/expressInstall.swf", flashvars, attributes, params); } });

* * *更新(找到问题区域但不是解决方案)

我有点知道问题是什么,但我不知道它的发生。 当我在IE中使用Flash文件运行页面时。 它以一种奇怪的方式呈现它

 <object width="930" height="630" title="Campaign" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" altHtml="   "> 

它为Object添加了一些altHTML属性,整个embed标签进入它,这搞砸了整个东西。 🙁

好的,找到我们在标签中得到“altHTML”的原因。 但找到了解决这个问题的方法。


inheritance人我的解决方案。 (如果有任何改进,请建议)

 $.ajax({ url: flashUrl, type: "POST", dataType:"html", success: function(data, status, xhr) { $('.layer-view .content').html('
'); // Building path for flash url var swfUrl = flashUrl.substr(0, flashUrl.lastIndexOf('/')) + "/" + $(data).findAndSelf('param[name="movie"]').attr('value'); var swfWidth = $(data).findAndSelf('object').attr('width'); var swfHeight = $(data).findAndSelf('object').attr('height'); var swfBgColor = $(data).findAndSelf('param[name="bgcolor"]').attr('value'); if(swfBgColor=="undefined") swfBgColor="#ffffff"; var layerviewWidth = parseInt(swfWidth) + 20; $('.layer-view .view').css('width', layerviewWidth); var flashvars = false; var params = {salign:'t', bgcolor:swfBgColor}; var attributes = {}; swfobject.embedSWF(swfUrl, "kcSwf", swfWidth, swfHeight, flashVersion, "/resources/expressInstall.swf", flashvars, params, attributes); } });

注意:FYI …. swfobject中的属性序列也很重要。 Param必须在属性之前出现,否则它会搞砸IE中的一些东西。 🙂