对于熟悉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?
答案 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>