Opera Turbo включена? - PullRequest
       12

Opera Turbo включена?

4 голосов
/ 11 января 2012

У меня есть страница, которая использует Flash с анимацией (это не критично, но дополнительно).

Все отлично работает, если я не использую Opera с активированным Turbo. Затем Flash-ролик отображается в виде большой уродливой стрелки в круге размером с флэш-фильм, который предназначен для использования в качестве кнопки воспроизведения для вспышки.

Я использую SWFobject, поэтому я мог бы легко включить анимацию, если бы знал, что используется турбо-механизм Opera, но как мне это сделать в JavaScript (или, может быть, в CSS, если так будет)


Как воспроизвести?
Посмотрите эту страницу на Opera (или на любой другой странице, использующей flash)
http://www.adobe.com/software/flash/about/
Без Opera Turbo вы видите флэш-анимацию и информацию о версии флэш С Opera Turbo вы видите две белые стрелки в серых кругах


редактировать 1 Теперь я совершенно уверен, что нет ни чистого решения JS, ни решения PHP. Лучшее предположение - комбинированное решение AS / JS.

Ответы [ 3 ]

5 голосов
/ 14 января 2012

Обнаружение на стороне клиента : Нет доступа к этому через javascript.Обнаружение на стороне клиента для Opera Turbo в настоящее время невозможно, может быть, оно будет поддерживаться в будущем, но кто знает?

Обнаружение на стороне сервера : Когда Opera Turbo включена, все запросы от клиента выполняютсяк серверам оперы серверы оперы будут обращаться к вашему приложению (делать сжатия) и пересылать обработанный контент конечному клиенту (компьютеру пользователя).

Имея это в виду, давайте проверим сетевой анализ и посмотрим, гдеИдет ли ваше соединение:

~$ nslookup opera10beta-turbo.opera-mini.net
>Server:        189.40.226.80
>Address:   189.40.226.80#53
>Non-authoritative answer:
>opera10beta-turbo.opera-mini.net   canonical name = global-turbo-1.opera-mini.net.
>Name:  global-turbo-1.opera-mini.net
>Address: 141.0.11.252

~$ nslookup 64.255.180.252
>Server:        192.168.1.254
>Address:   192.168.1.254#53
>Non-authoritative answer:
>252.180.255.64.in-addr.arpa    canonical name = 252.0-24.180.255.64.in-addr.arpa.
>252.0-24.180.255.64.in-addr.arpa   name = global-turbo-1-lvs-usa.opera-mini.net.

Как вы можете видеть, имя и каноническое имя с серверов Opera могут быть использованы для обнаружения доступа к вашему приложению через посредство серверов Opera.Я думаю, что серверное кодирование могло бы справиться с этим (не знаю, какой язык вы используете на своем сервере).

Хорошо помнить, что Opera Turbo не будет обрабатывать ваши запросы, если вы обращаетесь к чему-то на локальном сервере.

Надеюсь, это поможет.

2 голосов
/ 20 января 2012

Вы можете попробовать проверить, загружен ли флэш-объект каким-либо JavaScript.Этот код работает на моем компьютере с Opera 11:

<html>
<head>
  <script language=JavaScript>
    function isFlashBlocked(){
      var blocked;
      try {
        // Can test this on any flash object on the page
        window.document.myFlash.SetVariable("dummy", "dummy");
        // Flash not blocked
        blocked = false;
      }
      catch(err) {
        // Flash blocked
        blocked = true;
      }

      return blocked;
    }

    function removeBlockedFlash() {
      if (isFlashBlocked()) {
        // Hide all flash objects
        window.document.myFlash.setAttribute("style", "display: none");
        // ...

        // Display replacement content
        window.document.myImage.setAttribute("style", "display: inline");
        // ...
      }
    }
  </script>
</head>
<body onload="removeBlockedFlash()">
  <object type="application/x-shockwave-flash" data="HelloWorld.swf" 
          width="100" height="100" id="myFlash">
  </object>
  <img src="image.jpg" style="display: none" id="myImage" />
</body>
</html>

Если вы обнаружите, что вспышка заблокирована, вы скрываете каждый объект флэш-памяти и отображаете то, что хотите.Для работы с Firefox вам, вероятно, необходимо определить браузер перед использованием этой функции.

2 голосов
/ 14 января 2012

Я считаю, что ответ на вопрос о скорости заключается в том, что содержимое Flash не загружается изначально.Вы должны вручную нажать на значок, чтобы загрузить его.То же самое для анимированных GIF-файлов.Это часть стратегии по увеличению скорости.(ср. это сообщение Opera Desktop Team .)

Именно поэтому вы хотите знать, как проверять Opera Turbo , а не только Opera.Из моих локальных тестов я не могу определить разницу, используя переменную PHP _SERVER ["HTTP_USER_AGENT"].Я думаю, что это похоже на то, что Opera перечисляет в качестве строки агента пользователя, , как показано здесь и здесь .

Кажется, что, скорее, уведомляя веб-сайт браузераОпера молча управляет результатами запроса по-разному.

...