【问题标题】:Javascript to embed flash object in html not working将 Flash 对象嵌入 html 的 Javascript 不起作用
【发布时间】:2012-08-09 04:17:15
【问题描述】:

我正在尝试使用 javascript 显示一些嵌入 SWF 对象的 html。

脚本在没有 SWF 对象的情况下工作正常。但是,当对象包含在插入到 div 中的 html 中时,脚本不再运行。

如果有人可以建议修复或发现错误,我将不胜感激。

这里是 jsfiddle。

http://jsfiddle.net/UJpQ4/

代码(同jsfiddle):

html:

<a href="javascript:void(0)" onclick="takeProfilePic('0');">Show Flash</a>
<a href="javascript:void(0)" onclick="takeProfilePic('1');">Do not show flash</a>
<tr><td colspan=2 align="center"><div id="takepic"></div>

javascript:

function takeProfilePic(type) {
//   alert(type);
if (type==0)
  {
   var target = 'takepic';
   var photo = '<tr><td colspan=2 align="center">hello</td></tr>';
document.getElementById(target).innerHTML = photo;
return false;
  }
    else if (type==1) {
        var target = 'takepic';
   var photo = '<tr><td colspan=2 align="center"><a href="stepthree.php"><img src="images/collapse.gif" border=0></a></td></tr><tr><td colspan=2 align="center">NO FLASH OBJECT HERE</td></tr>';
  document.getElementById(target).innerHTML = photo;
return false;      
    }     
}

【问题讨论】:

  • 以后,请在您的帖子中包含所有相关代码,并且不要仅包含指向 jsFiddle 的链接。您的帖子应该独立于任何其他资源;考虑一下如果 jsFiddle 将来出现故障会发生什么。
  • 您的嵌入代码错误。考虑使用 swfobject 从 javascript 中轻松、可靠地嵌入 swf。
  • 好点,bfavaretto。现在有问题的代码。如果你不介意我问,嵌入代码中的错误是什么?
  • 对不起,我的评论不准确。我指的是这个:&lt;object data="file.swf" type="application/x-shockwave-flash" width="520" height="400"&gt;。它可能不适用于所有浏览器(并且缺少&lt;/object&gt;)。但我在你的 jsfiddle 上看不到任何错误(显然不会加载 swf),并且脚本继续在那里工作(你可以随时在 flash 和 no-flash 之间切换)。

标签: javascript object embed shockwave


【解决方案1】:

使用EMBED 标签代替OBJECT 标签。

function takeProfilePic(type) {
//   alert(type);
if (type==0)
  {
   var target = 'takepic';
   var photo = '<tr><td colspan=2 align="center"><a href="stepthree.php"><img src="images/collapse.gif" border=0></a></td></tr><tr><td colspan=2 align="center"><div id="piccontent"><embed src="file.swf" type="application/x-shockwave-flash" width="520" height="400" /></div></td></tr>';
   document.getElementById(target).innerHTML = photo;
   return false;
  }
  else if (type==1) {
   var target = 'takepic';
   var photo = '<tr><td colspan=2 align="center"><a href="stepthree.php"><img src="images/collapse.gif" border=0></a></td></tr><tr><td colspan=2 align="center"><div id="piccontent">NO FLASH OBJECT HERE</div></td></tr>';
   document.getElementById(target).innerHTML = photo;
   return false;      
  }     
}

【讨论】:

  • 无法让它工作。你能证明它在 jsfiddle 中工作吗?
  • 这是更新后的jsfiddle。请注意,插件永远不会在 jsfiddle 中运行,因为 SWF URL 将指向 jsfiddle 服务器。确保您没有更改任何可能干扰代码的内容。在本地运行时,将file.swf 与 HTML 放在同一文件夹中,或更改 SWF URL(基本内容)。
  • 谢谢。有用。如果您使用的是嵌入,为什么大多数教程都有对象和嵌入。此外,是否建议包含 classid、代码库和他们通常投入的所有其他内容?这有什么用吗?非常感谢
  • AFAIK, OBJECT 标签最初是 Microsoft 对 HTML 的扩展,因此并非所有浏览器都支持它。它只是最近才在 HTML 4.0 中作为 Web 标准。基于 ActiveX 的对象需要CLASSID 属性。 CODEBASE 用于指定使用的相对 URL 的基本 URL(请参阅HTML4 specs 中的更多信息)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多