2012-03-14 97 views
1

对于熟悉js的人来说,我有一个相当简单的问题。我很喜欢的音频播放器从风格:http://wpaudio.com/在javascript中创建var;修改脚本以创建var用法?

我已经采取了这一点,并它主要是提取到Rails项目,但事实证明,在WordPress插件PHP内创建一个变量_wpaudio如下:

## WPaudio style, jQuery, SWFObject 
function wpaHead(){ 
    global $wpa_options; 
    # Put all styles into the _wpaudio settings object 
    $style = ''; 
    foreach ($wpa_options as $key => $value) { 
     $exploded = explode('_', $key, 3); 
     if ($exploded[1] == 'style') { 
      $style .= $exploded[2] . ":'$value',"; 
     } 
    } 
    $style = trim($style, ','); 
    $style = '{' . $style . '}'; 
    # Common JS 
    $wpa_pref_link_mp3 = ($wpa_options['wpa_pref_link_mp3']) ? 'true' : 'false'; 
    $head = "<script type='text/javascript'>/* <![CDATA[ */ var _wpaudio = {url: '" . WPAUDIO_URL . "', enc: {}, convert_mp3_links: $wpa_pref_link_mp3, style: $style}; /* ]]> */</script>"; 
    echo $head; 
} 

显然几乎是代码的ALL是不相关的,但是它只是说明了_wpaudio VAR那里创建。我并不真正关心构建的路径等。我只是想要能够操纵脚本,以便在js文件中创建var。我尝试了几种不同的方式,但我在JavaScript中非常不熟悉,以至于我的尝试迄今为止一直徒劳无功。

下面是其失败的负载在控制台与Can't find variable: _wpaudio错误的JavaScript: https://gist.github.com/fd208d327484306d65a9

如何修改脚本,以便它正确初始化时创建_wpaudio?

+0

我查看了您的错误案例。但是我不知道你在哪里实例化一个名为_wpaudio的对象。你是否缺少一些代码? – 2012-03-15 06:39:20

+0

不,我很抱歉,这正是我最初在这里需要做的。在这种情况下,我不确定在哪里实例化对象。 – ylluminate 2012-03-15 07:18:49

回答

2

如果您运行跨wpaudio插件文件夹中的文件_wpaudio搜索,你会发现这一点,在wpaudio.php的线150(烨,出现在片段中的一个,你提供):

$head = "<script type='text/javascript'>/* <![CDATA[ */ var _wpaudio = {url: "[[path/to/wpaudio-mp3-player]]", enc: {}, convert_mp3_links: [[true|false]], style: {[[style]]} }; /* ]]> */</script>"; 

这告诉你,你应该把这个脚本片段插入你的html页面的某个地方。 $头意味着插件将它添加到文档的头部(<头> ... < /头>)。这可能与任何地方一样好。无论如何,在插件初始化之前应该存在一个_wpaudio变量,在加载wpaudio.js之前应该插入该脚本片段。

<script type='text/javascript'> 
/* <![CDATA[ */ 
    var _wpaudio = { 
    url: "[[path/to/wpaudio-mp3-player]]", 
    enc: {}, 
    convert_mp3_links: [[true|false]], 
    style: {[[style formatting as a json object, empty object should work]]} }; 
/* ]]> */ 
</script> 
+0

好的,这非常有帮助,谢谢。我做了不同的触摸,但现在它已经初始化了。然而,我有一个问题,并且很好奇你是否能够提供建议。我得到:'错误:语法错误,无法识别的表达式:[href $ =。mp3]'。在初始化函数中,我看到了这一点(第10行):http://j.mp/ywsCrl – ylluminate 2012-03-15 09:19:57

+0

明白了,没关系。 .mp3根本没有被引用。非常棒,看起来棒极了! WPAudio现在是一个基于链接的Rails音频播放器的超级实现! – ylluminate 2012-03-15 09:24:30