使用jQuery更新flashvars并重新加载flash

Dan*_*l O 10 javascript flash jquery internet-explorer-8

我想更新flashvars值参数以查看另一个视频:

<param name='flashvars' value='movieId=1002' />
Run Code Online (Sandbox Code Playgroud)

我发现通过更新参数以及读取整个flash内容的额外步骤,我可以在Firefox中使用它.

$("param[name=flashvars]").attr("value", "movieId=33");
$("embed").attr("flashvars", "movieId=33");
$(".root").append($("#video"));
Run Code Online (Sandbox Code Playgroud)

但这在IE8中不起作用,因为浏览器不会刷新Flash内容.关于如何在没有外部依赖性的情况下重新加载flash内容的任何想法,比如swfobject.js?

clo*_*jas 5

// update flashvars
var fv = 'foobar=1';

$("object param[name='flashvars']").attr("value", fv);
$("embed").attr("flashvars", fv);

// create new object to hold it     
var obj = $("object");

// remove existing Flash from DOM
$("object").remove();

// add new HTML to DOM
$("#mviewer").append(obj.html());
Run Code Online (Sandbox Code Playgroud)


Pat*_*ckS 0

您可以使用ExternalInterface AS3 类将新值发送到Flash,而不是使用flashvars。

外部接口允许 AS3 和 Javascript 之间进行双向通信

  • 据我了解,这不是一个解决方案。如果我们仍然需要重新加载 Flash 怎么办? (2认同)