После переключения статических ресурсов на CDN, ошибка Google Maps в Chrome + Firefox, хорошо в Safari: - PullRequest
3 голосов
/ 26 февраля 2012

Я просто ищу указатели, которые помогут мне сузить отладку.

Мой сайт работает нормально без использования CDN.Если я использую CDN (Edgecast, но также и другой, на котором я тестировал), то мои карты Google, встроенные в страницы, не отображаются в Chrome и Firefox, но хорошо отображаются в Safari (все последние версии не могут его протестировать)в IE).

Отключение настройки CDN в моем приложении (социальный движок) исправляет ее, поэтому она действительно связана с CDN.

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

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

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

Если вы хотите посмотреть на страницу, работающую в Safari, но не в Chrome / Firefox, вы можетевзгляните на http://healthylivingtribes.com/paleo-primal-resource/ovvio.На вкладке «карта» должна отображаться карта Google.

Заранее большое спасибо за вашу помощь.

Best, - Julien

Ответы [ 3 ]

2 голосов
/ 06 апреля 2012

Я получил ту же ошибку:

Uncaught TypeError: Array.prototype.forEach called on null or undefined at mootools-1.2.5-core-nc.js:81

и нашел решение, которое работает для меня:

В файле mootools-1.2.5-core-nc.js (или где бы ни находился ваш код, похоже, он работает и для более старых версий) замените следующую строку (# 2901 в mootools-1.2.5-core-nc.js):

var rules = sheet.rules || sheet.cssRules;

по этой строке:

var rules = sheet.rules || sheet.cssRules || [];


По-видимому, ни sheet.rules, ни sheet.cssRules не обязательно должным образом инициализированы, поэтому простое назначение пустого массива в качестве третьей альтернативы переменной rules исправляет это.

По какой-то причине Chrome кажется здесь более чувствительным (или точным), чем обычные подозреваемые ...;)


Соответственно, если вы используете сжатую версию, замените эту строку (ну, сжатая строка):

var F=E.rules||E.cssRules;

этим:

var F=E.rules||E.cssRules||[];


Поскольку в сжатых версиях внутренние переменные переименовываются в более короткие значения, ваша переменная может и не иметь названия F, как в моем случае, но вы поняли:)


РЕДАКТИРОВАТЬ: так как это похоже на реальную ошибку, я сообщил об этом в багтрекер MooTools Core, поэтому, возможно, они исправят это в официальных выпусках (https://github.com/mootools/mootools-core/issues/2345).

0 голосов
/ 09 марта 2012

Я тоже получил эту ошибку и попытался обновить mootools с 1.2.5 до 1.4.5 - но ошибка изменилась на:

Uncaught ReferenceError: Asset is not defined

Затем я использовал конструктор Mootools здесь: http://mootools.net/more/#Assets(Выберите ВСЕ, Включить совместимость, Без сжатия)

... и слайд-шоу теперь работает.

0 голосов
/ 26 февраля 2012

Ну, я не нашел ответа, но он связан с другим JS, который препятствует появлению карт Google.

До сих пор не имею понятия о разнице между Safari и Chrome, но я сейчас изолировалплагин socialengine, который вызывает это.

Это точно связано с CDN, и все еще прекрасно работает в Safari, поэтому, если у кого-то есть какие-либо гипотезы, мне все равно будет интересно услышать их: -)

...