Показать переменную внутри JavaScript

1

Я хочу изменить гиперссылку внутри скрипта с переменной. Это FB SDK, я хочу отобразить SDK на языке, который пользователь выбрал на моем веб-сайте.

Переменная {$lang_fb} и возвращает правильный результат (здесь: en_US), если я использую его в обычном php.

Если я использую переменную внутри скрипта на простой HTML-странице, результата нет.

Сценарий:

<script>
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/{$lang_fb}/sdk.js#xfbml=1&version=v2.5&appId=01234567890";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
<script>

приводит к идентичному коду на странице

Что я могу сделать?

  • 0
    Мне не понятно, как вы используете PHP для генерации файла.
  • 0
    @Blazemonger, почему вы удалили часть вопроса?
Показать ещё 9 комментариев
Теги:
smarty

4 ответа

1
Лучший ответ

Сопровождение:

 js.src = "//connect.facebook.net/{/literal}{$lang_fb}{literal}/sdk.js#xfbml=1&version=v2.5&appId=1234567890";

Спасибо за вашу помощь!!!

1

Если вы используете PHP-скрипт, вам нужно поместить теги php или вывести строку.

Путь один

<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/<?php echo {$lang_fb} ?>/sdk.js#xfbml=1&version=v2.5&appId=01234567890";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

Путь два

<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/".{$lang_fb}."/sdk.js#xfbml=1&version=v2.5&appId=01234567890";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

Если вы не используете больше кода, мы не можем просмотреть, что произойдет.

  • 0
    Извините моя ошибка. Страница в HTML, а не в PHP.
  • 0
    Или вы не очень хорошо объясняете свою проблему, или вы не можете представить переменную в HTML. HTML - это язык разметки, а не язык программирования.
Показать ещё 13 комментариев
0

Поскольку вы используете расширение файла, которое не связано с PHP, вам нужно настроить php для обработки этого расширения.

Для apache вы можете сделать это с файлом .htaccess:

AddHandler application/x-httpd-php .tpl

Конечно, вы также должны require в Facebook SDK, который создает {$lang_fb}.

-2

$lang_fb является переменной php и не будет работать в javascript. Встраиваете ли вы свой тег скрипта в php файл? Если да, то вы можете просто использовать следующее:

<script>
    (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/"+<?php echo $lang_fb; ?>+"/sdk.js#xfbml=1&version=v2.5&appId=01234567890";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>
  • 1
    Это совершенно неправильно. "+<?php ... +" создаст переменную javascript.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню