Загрузка Javascript, но не работает - рельсы 3.1 - PullRequest
0 голосов
/ 01 декабря 2011

У меня в файле макета приложения есть внешний файл javascript, в котором есть несколько строк кода, и в конце запускается такая функция, как BooManager.init() Ничего страшного ...

проблема в том, что внутри этого файла javascript не выполняется внутренний код.

вот как я это использую:

<script type="text/javascript">
    bb_bid = "1615455";
    bb_lang = "en-US";
    bb_keywords = "iphone4s, apple";
    bb_name = "custom";
    bb_limit = "8";
    bb_format = "bbb";
</script>
<%= javascript_include_tag "http://widgets.boo-box.com/javascripts/embed.js" %>

но он не сделал ничего, что должен был сделать ...

Я пробовал в простом HTML-файле, и он работает ... что я делаю не так?

Примечание:

путь по умолчанию в html такой:

<script type="text/javascript">
    bb_bid = "1615455";
    bb_lang = "en-US";
    bb_keywords = "keywords, between, commas";
    bb_name = "custom";
    bb_limit = "8";
    bb_format = "bbb";
</script>
<script type="text/javascript" src="http://static.boo-box.com/javascripts/embed.js"></script>

- РЕДАКТИРОВАТЬ -

результат, генерируемый рельсами:

<script type="text/javascript" src="http://static.boo-box.com/javascripts/embed.js"></script>

1 Ответ

0 голосов
/ 01 декабря 2011

Это не оценка скрипта при загрузке с использованием метода <%=. Я не знаком с этим синтаксисом, но из-за эффекта это звучит так. Он обрабатывает скрипт как HTML, а не как код.

В jQuery есть функция загрузки скрипта, которая будет динамически получать скрипт из URL-адреса, а затем eval() его выполнять.

ОБНОВЛЕНО ОБРАЗЦОМ КОДА

Добавьте jQuery в ваше приложение:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

Затем используйте его для загрузки вашего скрипта:

$.getScript('http://widgets.boo-box.com/javascripts/embed.js');

ОБНОВЛЕНИЕ НОМЕР 2

Мне удалось воспроизвести проблему в этой скрипке: http://jsfiddle.net/7x2zT/4/

Если вы пытаетесь активировать параметры до того, как скрипт покажет виджет - по умолчанию он выглядит как боковая панель, тогда как ваши параметры делают его больше баннером, тогда просто убедитесь, что вы поместили свои параметры выше <script src материал.

Если вы должны иметь возможность загружаться динамически, то вам нужно будет выяснить, где находится ошибка в коде для встраивания или есть какой-то другой метод активации. Документация этого сайта, кажется, не на английском языке, поэтому я не могу помочь с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...