2013-07-18 47 views
0

我有ffmp3嵌入代碼,並試圖用javascript更改flashvars參數值,這可能嗎?用javascript更改參數值

我來到到目前爲止,但沒有運氣:

<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> 
+0

你也必須改變嵌入標籤。然而,只是改變屬性可能不會做任何事情,你必須創建一個新的元素與新的設置,使其生效 –

+0

實際上,它的工作原理,請點擊這裏http://jsfiddle.net/adBkH/ 1 / – Sergio

回答

1

總之:是的,可以更改任何使用Javascript的HTML元素值。但我想,這可能無法以你期望的方式幫助你。

Flashplayer對象很可能只會在第一次加載params時查詢參數。因此,在flashplayer運行時更改參數可能不會影響其當前流。

但是,這也可以解決:

  • 兩個地方的所有可用對象的第一頁加載(隱藏)時,設定自動播放功能,虛假的,隱藏的需要/取消隱藏的對象,並使用JavaScript觸發啓動。

  • 不僅使用Javascript更改flashvars元素,而且根據需要動態生成「完整的」Flashplayer對象。

  • 直接修改flashplayers網址,而不是PARAMS

  • ...創意:)

0

這實際工作,因爲它是(檢查here)。你的問題可能是Flash對象已經被渲染,並且不會使用改變的值,所以你需要在改變值後「重新加載」它。

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

的作品就像一個魅力,沒有錯,你的代碼

但問題不在於價值不被改變,但閃光物體不知道的變化。它僅在頁面加載時實例化,並且不再與HTML代碼鏈接。你必須重寫我認爲的整個對象塊(使用document.write,或者如果你想自己親近,使用jquery或任何其他庫)