对于熟悉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
如果你在wpaudio插件文件夹的文件中搜索_wpaudio,你会在wpaudio.php的第150行找到这个(yup,你提供的代码片段中出现的那个):
$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意味着插件将把它添加到文档的head部分(<head>…</head>)。这可能是一个很好的位置。在任何情况下,在初始化插件之前都应该存在_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>