使用javascript更新<嵌入>参数
Using javascript to update <embed> parameter
我最近一直在尝试实现一个flash应用程序,该应用程序有时需要通过html嵌入。看起来有点像>
<embed src=".." quality=".." ... and at some point FlashVars="&firstparam&secondparam..."
我想做的是实现一个下拉菜单,当按下时会更改FlashVars参数,这样应用程序就会显示不同的东西。我试过
document.getoElementByID().FlashVars="new parameters"
但它不起作用(它完全适用于高亮默认参数,如src、height、width…)
我也尝试过用javascript代码段再次编写整个嵌入部分,但也没有成功。javascript是如何做到这一点的?我是这个领域的初学者,所以我们非常感谢您的帮助。
谢谢。
要理解代码不工作的原因,您应该了解flashvars
参数是什么以及它是如何工作的。
Adobe在这里说过,例如:
HTML<对象>当SWF文件加载到web浏览器中时,标记会将变量发送到该文件的顶层。<对象>标记用于将SWF文件添加到HTML页面。<EMBED>标签也可以使用,但它已经过时了。
因此,在这里我们可以理解,这些变量是在加载SWF时加载的,这就是为什么即使您更改了flashvars
参数,也不会对加载的SWF做任何事情,而加载的SWF应该再次加载以应用它们(变量)。
因此,举个简单的例子:
HTML:
<div id='swf_container'>
<embed id='swf_object' src='swf.swf' flashvars='id=1' />
</div>
JavaScript:
// change the flashvars attribute
var swf_object = document.getElementById('swf_object');
swf_object.setAttribute('flashvars', 'id=2');
var swf_container = document.getElementById('swf_container');
var inner_html = swf_container.innerHTML;
// reload the swf object
swf_container.innerHTML = '';
swf_container.innerHTML = inner_html;
当然,这种方式是有效的,但每次我们需要SWF对象执行某些操作时,重新加载它可能不是一个好主意,这就是为什么我们使用ExternalInterface
在SWF和JavaScript之间进行通信。
因此,在您可以访问ActionScript代码来创建SWF的情况下,当SWF已经加载时,您可以使用ExternalInterface
来调用SWF中的任何函数。
举个例子:
ActionScript:
if(ExternalInterface.available)
{
// registers an AS function to be called from JS
ExternalInterface.addCallback('from_JS_to_AS', from_JS);
}
function from_JS(id:int) : void
{
// use the id sent by JS
}
JavaScript:
var swf_object = document.getElementById('swf_object');
swf_object.from_JS_to_AS(1234);
不要忘记使用swfobject
来避免某些浏览器的兼容性,并确保在ActionScript端和JavaScript端之间建立通信。。。
希望这能有所帮助。
只需执行以下操作:
$('embed') // targets the embed tag in the DOM
.attr("attribute-name","attribute-value");
以下是一个示例:https://jsfiddle.net/DinoMyte/1a6mwb13/2/
- 在<页眉>标签
- 如何更改<svg>标记为<img>用js标记
- 如何在<嵌入>标签在Plone 4.1中
- 如何使用javascript从具有html5<嵌入>标签
- 为什么获胜't在<嵌入>.mov
- 排除加载<嵌入>项
- <嵌入>或者<对象>标签视频播放错误处理程序-JavaScript
- 自定义数据属性,剪切并嵌入<img>
- 流星js写的静态HTML?嵌入<iframe>
- 一个Vimeo<iframe>嵌入劫持滚动/滑动事件
- 使用javascript更新<嵌入>参数
- 在<嵌入>标记-其他选项
- 事件处理-onClick-使用带有<嵌入>标签
- Youtube嵌入有错误的开始时间<iframe><javascript>
- 嵌入<脚本src=>从remote.js重写高度
- 在隐藏<嵌入>标记
- 将CSS和JS的大部分嵌入<头部>没有链接
- Actionscript 3 javascript通信:对象#<HTML嵌入元素>没有方法
- <嵌入>带密码的源代码转换器
- <嵌入>标记Youtube视频的src属性