Opera: файл .js не загружается - PullRequest
1 голос
/ 28 июня 2009

У меня есть страница, которая вызывает скрипт в заголовке, например:

<script type="text/javascript" src="http://www.discoverfire.net/analytics/l/a.js"></script>

(Обратите внимание, что вы НЕ сможете загрузить этот скрипт, так как он локально DNSd в качестве промежуточного домена)

Очень просто.

Firefox, IE, Chrome не имеют проблем с этой базовой функцией "квадрат один".

Opera, однако, отказывается загружать скрипт. Любые переменные или функции в нем являются «неопределенными», и в dragonfly тег script отображается в DOM, но на вкладке «Script» написано «Файлы сценариев не найдены».

Я захожу в Google и нахожу случайные страницы, их внешние файлы .js, кажется, работают просто отлично.

Есть идеи, почему Opera ненавидит меня? Есть ли что-то, что мне не хватает в безопасности / javascript?

Несколько вещей, которые могут иметь отношение, но на самом деле не должны иметь значения:

  • Сценарий находится в другом домене, чем страница.
  • Сценарий доступен только в моей локальной сети. Домен DNS предназначен для локального размещения, вне сети он указывает куда-то еще. Есть ли в Opera настройка тайного использования внешнего DNS-сервера?
  • Скрипт работает на любом другом браузере, который у меня есть.
  • Проблема не в содержании скрипта. Я сократил его до одной строки с предупреждением, и он просто не будет работать в Opera.

Обновление:

ОК, похоже, проблема в том, как Opera обрабатывает домен.

Я переместил скрипт в несколько других доменов, и он прекрасно работает. Я переместил его по нескольким путям в локальном домене DNS, и он не будет работать нигде в этом домене.

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

Как ни странно, не возникает проблем с загрузкой страниц и других ресурсов из домена, проблема заключается только в файлах .js.

Домен зарегистрирован, но припаркован. Мы работали с DNS локально, поэтому мы можем использовать его для постановки / тестирования, и это может как-то испортить Opera с безопасностью JS.

Хотя я могу ошибаться - я действительно понятия не имею. Если бы у кого-то еще был такой, я бы с удовольствием его услышал.

Обновление 2:

Что касается Dragonfly и инструментов консоли / разработчика ошибок, они вообще ничего не говорят о скрипте. Существует множество неопределенных ошибок переменных для переменных и функций, которые должны присутствовать в скрипте, но, кроме этого, ошибок нет. Как ни странно, тег сценария действительно появляется в DOMM, но если я нажимаю на вкладку «Сценарии», он говорит: «Сценарии не найдены».

Обновление 3:

Нет заблокированного контента, поэтому мы можем по крайней мере исключить этот параметр.

Ответы [ 8 ]

2 голосов
/ 28 июня 2009

Как предположил Джейкоб, вам следует проверить, не заблокировано ли оно. Для этого:

  • Щелкните правой кнопкой мыши на своей странице
  • Выберите «Блокировать содержимое ...» в контекстном меню
  • В верхней части экрана нажмите кнопку «Подробнее ...»
  • Вы должны увидеть URL-адреса, заблокированные на текущей странице
2 голосов
/ 28 июня 2009

Вы проверили консоль ошибок Opera? Сервис> Дополнительно> Консоль ошибок Он должен предоставить информацию о том, почему он не загружается или есть какая-то другая ошибка.

2 голосов
/ 28 июня 2009

Возможно, вы захотите узнать, мешает ли его блокировщик рекламы. Ваш URL содержит текст «аналитика», который может быть частью шаблона «заблокировать это». Я знаю какой-то блок аналитики Google через Opera. Простым тестом для этого может быть попытка переместить ваши .js по другому пути на хосте.

1 голос
/ 23 марта 2012

то, что вы видите, вероятно, является мерой безопасности Opera против так называемых «фиш-фарм» атак: межсетевая защита. Вы не можете смешивать контент с публичного сервера и контент с локального сервера.

Посмотрите на мой ответ здесь для обхода:

Opera не загружает некоторые файлы JavaScript

1 голос
/ 20 октября 2010

У меня была точно такая же проблема, связанная с загрузкой скрипта с локального сервера / сервера разработки на страницу, размещенную на общедоступном сервере, но безрезультатно. Единственным способом, которым мне удалось загрузить скрипт в Opera, было сохранение копии страницы в том же месте на сервере разработки и использование тега для ссылки на исходный домен для получения связанных файлов страницы .css и .js. Это сработало. Похоже, что Opera не любит смешивать публичные и локальные домены, но обрабатывает локальный без жалоб.

1 голос
/ 25 октября 2009

У меня недавно было что-то похожее - опера просто не запускала скрипт на внешнем сервере ... ни если бы я его скачал и имел на локальном хосте. Он запускался только при копировании / вставке между тегами скрипта на html-страницу.

Оказалось, что скрипт был закодирован в UTF-16, и это как-то сбивало с толку браузер. Когда я преобразовал его в UTF-8, все работало нормально.

Так, на всякий случай, и если у вас все еще есть эта проблема, проверьте настройки кодирования ...

1 голос
/ 28 июня 2009

Является ли хост, обслуживающий правильный тип mime-файла JavaScript. Это не общеизвестный факт, но атрибут type=text/javascript фактически игнорируется браузерами, поскольку он полагает, что сервер указывает правильный тип.

Кроме того, тип mime text/javascript на самом деле неверен, когда дело касается JavaScript, фактический тип mime JavaScript - application/ecmascript (хотя, если я правильно помню, это может быть application/javascript, хотя). Если вы мне не верите, вы должны посмотреть здесь , где у меня было больше информации и ссылки на видео Дугласа Крокфордса, где он обсуждал тип пантомимы.

1 голос
/ 28 июня 2009

Вы должны спросить на форумах Opera.В прошлом у меня были проблемы с Opera, и они быстро ответили.

...