|
Как побороть ошибку "На этой странице произошла ошибка сценария"? | ☑ | ||
---|---|---|---|---|
0
DSSS
04.04.16
✎
11:05
|
Всем приветы!
Windows 7, 64 8.3.7.1949 IE 11. В настройках IE уровень безопасности выше среднего, установлен флаг “Отключить отладку сценариев” - все по умолчанию. Стоит задача организовать просмотр гугл карт в режиме тонкого клиента. По документации и примерам гугл сделал простейший html документ, вот его текст <!DOCTYPE html> <html> <head> <title>Simple Map</title> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <style> html, body, #map_canvas { height: 100%; margin: 0px; padding: 0px } </style> <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> <script> function initialize() { var myLatLng = {lat: 51.560, lng: 46.001}; var mapOptions = { zoom: 12, center: new google.maps.LatLng(51.560, 46.001) }; var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); var marker = new google.maps.Marker({ position: myLatLng, map: map, title: 'Hello World!', clickable: false, icon: 'http://google-maps-icons.googlecode.com/files/home.png' }); } google.maps.event.addDomListener(window, 'load', initialize); </script> </head> <body> <div id="map_canvas"></div> </body> </html> Разместил этот файлик на служебном сайте, в IE и FF открывается без проблем, отображает то что нужно, никаких ошибок не выдает. Заметил интересную особенность: если открывать файл по ссылке, то как и писал, ошибок нет, а если попытаться открыть этот же файл локально, то в IE возникает предупреждение “Internet Explorer запретил выполнение сценариев и элементов ActiveX на этой странице”. Тут же можно разрешить заблокированное содержимое. Для открытия карты в 1С написал простейшую обработку с кодом: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ОбъектОбработки = РеквизитФормыВЗначение("Объект"); Макет = ОбъектОбработки.ПолучитьМакет("Макет"); ПолеHTMLДокумента = Макет.ПолучитьТекст(); КонецПроцедуры где ПолеHTMLДокумента - это реквизит формы, для которого есть элемент управления с видом “Поле HTML документа” При открытии обработки в режиме предприятия карта строится нормально, все как в браузере. Проблема в том, что через некоторое время появляется ошибка “На этой странице произошла ошибка сценария”. Мне не удалось выявить каких-то закономерностей для этой ошибки - может возникнуть при малейшем движении мыши, а может через 20 кликов, изменениях масштаба карты и т.п. Тот же результат на 8.2.19.130 Может кто-то в курсе, как побороть проблему? Очень хочется обойтись без каких- либо изменений в настройках IE. Читал про снятие флагов про сценарии в настройках IE, но это все не помогает и создает дополнительные трудности для запуска обработки на разных машинах. Буду благодарен за любые рекомендации по решению вопроса. Что читать, куда копать и т.п. Может быть у кого-то найдется готовый пример как бороться?) В идеале хотелось бы найти какое-то общее решение для разных версий ОС и браузеров. Спасибо! |
|||
1
vde69
04.04.16
✎
11:09
|
общего решения для всех браузеров - нет...
вроде 1с использует слегка кастомизированую мазилу.... для карты наверно имеет смысл юзать какой ACTIV-X компонент из SDK яндекса или что-то на подобии... |
|||
2
DSSS
04.04.16
✎
12:01
|
(1), ок, можно остановиться только на тонком клиенте.
Что если с пом. JS как-то перехватывать или отключать события карты? Интересно, будет ли нормально работать, если отключить все события, связанные с движениями мыши? Оставить только изменение масштаба? Кстати на нажатие кнопок + и - на карте никаких ошибок нет. |
|||
3
vde69
04.04.16
✎
12:09
|
у меня есть предположение в чем дело:
1. ты создаешь HTML - НА СЕРВЕРЕ 1с 2. при создании он тянет скрипт гугла и этот скрипт должен постоянно обмениваться с гуглом через инет... 3. через некоторое время серверный кешь "тухнет", или контекст переходит в другой рхост, и тут наступает кирдык.... вывод: интерактивные страницы надо юзать на клиенте а не на сервере :) |
|||
4
DSSS
04.04.16
✎
13:14
|
(3) Спасибо, сейчас попробую.
|
|||
5
DSSS
04.04.16
✎
13:54
|
не помогает.
|
|||
6
DSSS
04.04.16
✎
14:11
|
Поиск находит несколько подобных тем, в одной из них
v8: Яндекс API. Отображение ошибки предложено решение через window.onerror = myOnError; function myOnError(msg, url, lno) {return true} Может кто-то в курсе про таой способ и сможет рассказать подробнее как использовать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |