Код стороннего виджета появляется на странице, но не работает

Доброго времени суток.
Подскажите пожалуйста в чем дело.
Хочу прикрутить карту-справочник на ЛС виджетом от 2гис. Создал новую страницу по инструкции, далее в index.tpl вставил в literal этот код виджета:
<noscript id="dg-widget-minigis-place-ef98b1aa" style="color:#c00;font-size:16px;font-weight:bold;">
    Виджет miniGIS использует JavaScript. Включите его в настройках вашего браузера.
</noscript>
<script src="http://mini.api.2gis.ru/js/ver_fb7dbc6/loader.js"></script>
<script type="text/javascript">
    new DG.Widget.Components.Loader({
        wid: 'ef98b1aa', 
        params: {"projectSelector":{"id":32,"code":"moscow","name":"Москва","centroid":"POINT(37.616931 55.750475)","timezone":"Europe/Moscow"},"search":{"rubrics":{"list":["_3"]},"_searchFirmBasePoint":{}},"customBalloon":{},"Map":{"zoom":10,"lon":37.616931,"lat":55.750475},"resize":{"w":938,"h":430}}    });
</script>

Однако, сам виджет не отображается, но если открыть код страницы, то вся структура аффрейма видна.
Спасибо.
А вот страничка с примером, сделанная через статпейдж, где все аналогично: test.jurist03.ru/page/about/

30 комментариев

avatar
Попробуйте обернуть скрипт в
{literal}
...
{/literal}
avatar
Так я же написал, что уже обернул. Без этого страница просто выдает ошибку, тут я быстро догадался в чем дело. А сейчас виджет берет свое пространство, но вместо него просто белая пустая страница. И код присутствует, это видно, но правильно не отображает.
avatar
Хотя нет, проверил у себя — тоже не работает. :(
avatar
Просто карты от яндекса, например, нормально отображаются. А тут что-то не хочет.
avatar
Аналогично, этот скрипт не работает, а все остальные работают без проблем…
Интересно узнать где собака зарыта…
avatar
Я уж не знаю, как достучаться. Может кто за деньги скажет в чем дело? Цену назовите.
  • ustus
  • 0
avatar
вы лучше бы страницу показали всем с установленным кодом. гадать дальше смысла не имеет.
avatar
Пожалуйста: вот залил на хостинг, страница 2гис: test.jurist03.ru/page/about/
Сам код присутствует, но не работает. Аналогично, если создавать страницу отдельно, не при помощи статстраниц.
Спасибо.
avatar
Попробуйте ручками вставить в базу этот код. У меня так же было с топиками. парсер просто съедал скрипты.
avatar
Что есть база, извините?
avatar
База данных.
avatar
Да нет. В базе такой же код и замена не помогает. Говорю же код забирает указанное место даже на странице, но содержание просто не показывает.
avatar
Тоже интересно почему виджет не работает, просто карта из примера 2Gis работает себе multiblog.ru/page/map/ а виджет — пустое место:( Ребята кто разбирается помогите собаку отрыть:)
avatar
Видимо какой-то конфликт в JS, т.к. в чистом html работает.
Виджет сделан для «ленивых» разбираться с API.
avatar
Нашел.
2gis не нравиться aRouter.
В примере я изменил на a1Router
avatar
только не работает, просто отображается.
avatar
Почему не работает — не знаю, я код виджета с сайта 2гис взял, не с топика.
avatar
Спасибо. Теперь остается узнать, не повлияет ли на работу сайта эти изменения.
avatar
изменение aRouter? конечно повлияет!
Я бы в это случае рекомендовал попробовать использовать API вместо виджета.
avatar
: )
Это уже программистов надо нанимать, причем уже знакомого с ЛС.
avatar
Я «закинул» эту проблему в 2gis. Отписались
Спасибо за информацию, передал ее нашим разработчикам, разбираемся по вашему вопросу.
avatar
Зачет.
avatar
Ответили
Проблема возникает из-за того, что ваш код дописывает в свойство «src» iFrame-а виджета строчку "&wmode=opaque", вследствие чего нарушается нормальная работа загрузчика, (который не рассчитан на то, что свойство src iFrame-а будет каким-то образом изменяться).

Найдите, где дописывается "&wmode=opaque" и отключите это поведение, тогда виджет будет загружаться.
avatar
Кто нибудь нашел где дописывается "&wmode=opaque"? Если кто знает как решить проблему — поделитесь пожалуйста.
avatar
template.js
avatar
Для проверки закомментировал
// Фикс бага с z-index у встроенных видео
	$("iframe").each(function(){
		var ifr_source = $(this).attr('src');

		if(ifr_source) {
			var wmode = "wmode=opaque";

			if (ifr_source.indexOf('?') != -1)
				$(this).attr('src',ifr_source+'&'+wmode);
			else
				$(this).attr('src',ifr_source+'?'+wmode);
		}
	});

В итоге смотреть lsblog.ru/page/2gis/
avatar
в скине это. это для того, чтобы ютубовские видео не перекрывали окно логина/регистрации/и т.п. в браузерах на основе вебкита (баг с установкой z-index для ифреймов). данный параметр работает только для кода ютуба и мое решение было только для доменов ютуба. почему в скины вшили добавление этого параметра ко всем ифреймам — я не знаю.

для шаблона синьйо, synio/js/template.js, строка с 354 по 366 нужно либо удалить, либо заменить на код, о котором я давно сообщал.
avatar
Заменил в template.js
if(ifr_source) {
на
if (ifr_source.indexOf ('youtube.com') != -1) {
avatar
Спасибо большое всем!
avatar
Я так понял достаточно только заменить в template.js
if(ifr_source) {

на
if (ifr_source.indexOf ('youtube.com') != -1) {


Или нужно еще вот это

<script>
jQuery (document).ready (function ($) {
  //
  // YouTube iframe fix for Chrome browsers
  //
  $ ("iframe").each (function () {
    var ifr_source = $ (this).attr ('src');
    var wmodeStr = "wmode=transparent";
    if (ifr_source.indexOf ('youtube.com') != -1) {
      if (ifr_source.indexOf ('?') != -1) {
        $ (this).attr ('src', ifr_source + '&' + wmodeStr);
      } else {
        $ (this).attr ('src', ifr_source + '?' + wmodeStr);
      }
    }
  });
});
</script>

Вставить в header.tpl Просто я вставил в header и почему то плагин карусель перестал работать и чат, LS 1.0.1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.