2012-03-14 2 views
1

У меня довольно простая проблема для кого-то знакомого с js. Я совсем как стиль аудио-плеер от: http://wpaudio.com/Создание var в javascript; модификация скрипта для создания использования var?

Я принял это и это в основном извлечен проект рельсов, однако выясняется, что плагин WordPress создает переменную _wpaudio в PHP следующим образом:

## 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. Я пробовал несколько разных способов, но я настолько непосвящен в javascript, что до сих пор мои попытки были бесполезны.

Вот Javascript, который не работает на нагрузку в консоли с ошибкой Can't find variable: _wpaudio: https://gist.github.com/fd208d327484306d65a9

Как изменить сценарий так, чтобы он правильно создает _wpaudio при инициализации?

+0

Я просмотрел ваш случай с ошибкой. Но я не вижу, где вы когда-либо создавали объект, называемый _wpaudio. Вам не хватает кода? –

+0

Нет, извините, это именно то, что мне нужно сделать здесь изначально. Я не совсем уверен, где создать экземпляр объекта в этом случае. – ylluminate

ответ

2

Если запустить поиск _wpaudio через файлы в папке wpaudio плагина, вы найдете это, в строке 150 wpaudio.php (да, тот, который появляется в фрагменте кода вы предоставляете):

$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 >). Это может быть как хорошее место, как любое. В любом случае переменная _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

+0

Получил это, неважно. Файл .mp3 просто не цитировался. Отлично работает и отлично выглядит! WPAudio теперь является супер-реализацией аудио-проигрывателя на основе ссылок для Rails! – ylluminate

Смежные вопросы