Is Opera Turbo on?
Is Opera Turbo on?
我有一个页面,它使用Flash和动画(这些不是关键的,而是额外的)。
如果我没有使用Opera和激活的Turbo,一切都很好。然后,Flash影片显示为一个圆圈中的一个丑陋的大箭头,该箭头的大小与Flash影片的大小相同,旨在充当Flash的播放按钮。
我使用的是SWFobject,所以如果我知道Opera的turbo机制是否被使用,我可以很容易地打开动画,但我如何在JavaScript(或者如果是CSS)中做到这一点
如何繁殖
使用Opera(或任何其他使用flash的页面)浏览此页面
http://www.adobe.com/software/flash/about/
如果没有Opera Turbo,您将看到flash动画和flash版本信息使用Opera Turbo,您可以看到灰色圆圈中的两个白色箭头
编辑1我现在很确定,没有一个纯粹的JS解决方案,也没有一个PHP解决方案。最好的猜测是AS/JS组合解决方案。
客户端检测:没有办法通过javascript访问它。opera turbo的客户端检测目前还不可能,也许将来会支持,但谁知道呢?
服务器端检测:启用opera turbo后,客户端的所有请求都会发送到opera服务器,opera服务器将访问您的应用程序(进行压缩),并将处理后的内容转发到最终客户端(用户的计算机)。
考虑到这一点,让我们做一些网络嗅探,看看你的连接在哪里:
~$ 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不会对您的请求进行中间处理。
希望能有所帮助。
您可以尝试检查flash对象是否加载了一些javascript。这段代码在我的Opera11:电脑上运行
<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,您可能需要在使用此功能之前检测浏览器。
我认为速度问题的答案是最初没有下载Flash内容。你必须手动点击图标才能下载。动画GIF也是如此。这是提高速度策略的一部分。(参见Opera Desktop Team的帖子。)
这就是为什么你想知道如何检查OperaTurbo,而不仅仅是Opera。从我的本地测试中,我无法使用PHP的_SERVER["HTTP_USER_AGENT"]变量来区分。我认为这类似于Opera列出的用户代理字符串,如这里和这里所示。
Opera似乎并没有将浏览器状况通知网站,而是以不同的方式默默地管理请求结果。
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- window.on.scroll事件未启动
- Socket.io on Mozilla Rhino
- CSS中的游标属性似乎不适用于USB On The Go
- jQuery点击ON现在使用.load触发关闭
- JQuery.on(“keydown”)追加到页面时不工作
- 使用.on动态添加jquery/js不知道的html元素
- angularjs$valid-on-dates在firefox中报告错误
- addEventListener on NodeList
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- jQuery 1.7.2:.on()在一个页面上工作;Don’别再干别的了
- Jquery on单击“显示信息”
- 平均值.on(事件[,选择器][,数据],处理程序)
- 多个jQuery.on()事件无法运行xBrowser(取决于顺序)
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- Javascript mozfullscreenchange on Firefox
- iframe and JavaScript on different pages
- Is Opera Turbo on?