Использование библиотеки greybox js для отображения окна с помощью Google tts

#javascript #django #text-to-speech #google-translate

#javascript #django #преобразование текста в речь #google-translate

Вопрос:

ОТРЕДАКТИРОВАЛ ЭТО ДЛЯ НАГЛЯДНОСТИ:

У меня есть приложение Django!

Я хочу использовать материал Google tts для перевода определенных элементов на моей веб-странице. Теперь у меня есть onclick, да, я должен знать лучше, который вызывает функцию javascript из шаблона Django, передавая ей фразу, над которой функция выполняет некоторую работу, вставляя запятые для лучшего произношения и т.д.

Я передаю greybox URL-адрес, и он открывается без проблем, Firefox, chrome … и т.д. Поместите встроенный медиаплеер (в данном случае gnome media Player) в окно, чтобы он, очевидно, знал, что это аудио, однако звук не воспроизводится, что странно, поскольку он воспроизводился в другой установке, которая у меня была ранее, с теми же браузерами без каких-либо изменений кода.

Вот вызов функции greybox из моей функции:

 return GB_showCenter(caption, "http://translate.google.com/translate_tts?tl=enamp;q=I hate programming, don't you?");
  

Теперь, если вы возьмете тот же URL и поместите его прямо в адресную строку браузера, это сработает. Также тот же вызов будет работать из ШАБЛОНА, ОТЛИЧНОГО от DJANGO, например, если у меня есть тот же тег с тем же onlcik из обычного Html-файла, он работает….

Я использую Firefox 4 в Linux Mint, но это то же самое в Opera 11.10 и Chrome.

Есть идеи? Возможно, это как-то связано с кэшем?

Спасибо

p.s. Я также пробовал это со следующим, но то же самое, не воспроизводится..

 window.open(url,caption,'width=400,height=200,toolbar=0,location=0,directories=no,status=0,menubar=0,scrollbars=n0,copyhistory=no,resizable=0');
  

ОБНОВЛЕНИЕ: Если я использую ссылку в обычном окне браузера, а затем нажимаю на ссылку greybox, это работает. Я предполагаю, потому что файл находится в кэше…

Ответ №1:

Ваш URL-адрес некорректен:

 return GB_showCenter(caption, "http://translate.google.com/translate_tts?tl=en?q=I hate programming, don't you?");
  

После «en» должен быть не вопросительный знак, а амперсанд:

 return GB_showCenter(caption, "http://translate.google.com/translate_tts?tl=enamp;q=I hate programming, don't you?");
  

И нет, я люблю программирование.

Комментарии:

1. Ах, да, извините, в моем коде это не так, я вручную ввел это в качестве примера, у меня там есть амперсанд, но он все равно не работает

Ответ №2:

Хорошо, итак, наконец, нет решения этой проблемы с использованием greybox. Провел несколько экспериментов и обнаружил, что lightwindow является лучшим вариантом. Однако это немного тяжеловато и зависит от prototype.js библиотека и множество других файлов, поэтому я рассматриваю свои варианты и аккуратные способы минимизировать нагрузку на загрузку клиентами с помощью javascript и всего все более обширного материала CSS. Но для целей прототипирования этого довольно аккуратного небольшого речевого модуля lightwindow выполняет эту работу. Кроме того, я не думаю, что grebox в настоящее время поддерживается, так что это был бы вопрос выбора костей и перезаписи. Это то, что я бы предпочел начать с нуля, если это необходимо.