2012-09-13 99 views
0

有沒有一種方法讓我從這個函數中獲取文件url而不用改變javascript並且不運行該函數?從函數中獲取變量

jwplayer('jsCmgPlayer').setup({ 
    flashplayer: 'http://website.com/player.swf', 
    file: 'http://website.com/0015980.mp3', 
    autostart: true, 
'skin': 'http://www.website.com/skin.xml', 
'controlbar': 'bottom', 
    height: 28, 
    width: 620 
    }); 

我想要http://website.com/0015980.mp3作爲一個單獨的變量。

+4

看在插件的文檔中,看看是否有方法獲得選項值。也許有一種像getConfig這樣的方法。 –

+2

該聲明已在運行該功能。 – Asciiom

+0

@Jeroen:好點... – acme

回答

1

這是不可能的。如果您不運行該函數,則無法通過插件API訪問該屬性,因爲它從未設置過,也不能從JavaScript代碼中的外部範圍訪問它。參數散列在這個函數之外是不可見的。

0

否。如果該函數未運行,則包含url的對象無法訪問。您只能嘗試將函數的源代碼作爲一個字符串,並在其中進行挖掘,例如用正則表達式來匹配那個對象字面值。

0

您提供的JavaScript已運行該功能。由於呼叫的設置代碼和提供,你可以做到這一點的論點:

// create the arguments object 
var setupArgs = { 
    flashplayer: 'http://website.com/player.swf', 
    file: 'http://website.com/0015980.mp3', 
    autostart: true, 
    'skin': 'http://www.website.com/skin.xml', 
    'controlbar': 'bottom', 
    height: 28, 
    width: 620 
} 

// setup the plugin 
jwplayer('jsCmgPlayer').setup(setupArgs); 

現在你可以使用,但是你想要的參數,訪問網址:

// use the arguments object for other things 
setupArgs.file; 
+0

我們不知道他是否真的提供了代碼。它可能是服務器上某個地方的一個片段。 – acme