使用javascript更改参数值

使用javascript更改参数值,javascript,onclick,Javascript,Onclick,我有ffmp3嵌入代码,并试图用javascript更改flashvars参数值,这可能吗 我来了这么远,但运气不好: <a id="foo" href="#">Change Radio</a> <object width="205" height="109" bgcolor="#FFFFFF"> <param name="movie" value="ffmp3-config.swf" /> <param

我有ffmp3嵌入代码,并试图用javascript更改flashvars参数值,这可能吗

我来了这么远,但运气不好:

 <a id="foo" href="#">Change Radio</a>

    <object width="205" height="109" bgcolor="#FFFFFF">
      <param name="movie" value="ffmp3-config.swf" />
      <param name="flashvars" value="Radio1" />
      <param name="wmode" value="transparent" />
      <param name="scale" value="noscale" />
      <embed src="ffmp3-config.swf" flashvars="url=Radio1" width="205" scale="noscale" height="109" wmode="transparent" bgcolor="none" type="application/x-shockwave-flash" />
    </object>

<script type="text/javascript">
    var foo = document.getElementById('foo');
    foo.onclick = function () {
        document.getElementsByName('flashvars')[0].value='Radio2';
    }
</script>

var foo=document.getElementById('foo');
foo.onclick=函数(){
document.getElementsByName('flashvars')[0].value='Radio2';
}

这实际上是按原样工作的(请检查)。您的问题可能是flash对象已经渲染,并且不会使用更改的值,因此您需要在更改值后“重新加载”它

document.getElementsByName("flashvars")[0].value = 'newvalue';

工作起来很有魅力,代码没有问题


但问题不是值没有被更改,而是flash对象不知道这些更改。它只是在页面加载时实例化,不再与html代码有任何链接。我认为您必须重写整个对象块(使用document.write,或者如果您想对自己友好,使用jquery或任何其他库)

简言之:是的,可以使用Javascript更改任何HTML元素的值。但我想,这可能不会以你期望的方式帮助你

Flashplayer对象在第一次加载时很可能只查询参数。因此,在flashplayer运行时更改参数可能不会影响其当前流

但这也可以解决:

  • 在第一个页面加载期间放置所有可用对象(隐藏),将autoplay设置为false,根据需要隐藏/取消隐藏对象,并使用javascript触发启动

  • 不仅可以使用Javascript更改
    flashvars
    元素,还可以根据需要动态生成“完整的”Flashplayer对象

  • 直接修改FlashPlayer url,而不是参数

  • 。。。要有创意:)


您还必须更改嵌入标记。但是,仅仅更改属性可能不会起任何作用,您必须使用新设置创建一个新元素,以使其生效。实际上,它是按原样工作的,请选中此处