在javascript中创建var;修改脚本以创建var用法?

时间:2012-03-14 03:57:18

标签: javascript

对于熟悉js的人,我有一个相当简单的问题。我非常喜欢来自http://wpaudio.com/

的音频播放器的风格

我已经采取了这个并将它主要提取到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;
}

显然,几乎所有代码都不相关,但只是为了说明在那里创建了_wpaudio var。我并不真正关心构建路径等等。我只是想能够操作脚本,以便在js文件中创建var。我尝试过几种不同的方法,但是我在javascript中如此开心,以至于到目前为止我的尝试都是徒劳的。

这是javascript在控制台中加载失败并出现Can't find variable: _wpaudio错误: https://gist.github.com/fd208d327484306d65a9

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

1 个答案:

答案 0 :(得分: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页面的某处插入此脚本片段。 $ head表示插件会将其添加到文档的头部(&lt; head&gt; ...&lt; / head&gt;)。这可能是一个好地方。在任何情况下,在插件初始化之前应该存在一个_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>