Opera 12.10 对页面可视性(Page Visibility) API 的支持

最近发布的 Opera 12.10 增加了对页面可视性(Page Visibility) API 的部分支持。
这是一个简单却强大的 API,因为它允许开发者规定一个文档在被隐藏时的行为。如果你有过在办公室手忙脚乱地想找出 200 个标签页中哪个在播放你预料之外的声音这种尴尬情况,你会觉得页面可视性 API 相当实用。

工作原理

页面可视性 API 对 HTML5 文档 接口增加了两个属性 — hiddenvisibilityState — 和一个 visibilitychange 事件(event)。当文档的窗口或标签页不可见,document.hidden 的值将为 true,否则为 false

document.visibilityState 属性直接表明一个文档的特定状态:hidden 或者 visible。标准规格也概述了另两个值 — prerenderunloaded,不过尚未支持。

当一个文档的可视性状态发生改变,Opera 会触发 visibilitychange 事件。这就是有趣之处。当文档不可视,visibilitychange 句柄可以暂停该文档的媒体或动画。当文档再次转为可视,句柄能恢复播放媒体或动画。这对于内存密集型应用例如游戏等特别有用。这个 demo 使用视频展示了一个例子。一个小小的警告:每次这个视频所在标签页置于前台时它都会自动播放。

限制

对此 API 的实现情况可能和你的预想有所出入。例如,从 Opera 切换到其他程序不会触发 visibilitychange 事件。最小化浏览器窗口也不会。

由于页面可视性 API 只是针对文档,你不能用它决定哪一个标签页或者窗口处于活动状态。决定你的文档是否可视因而处于活动状态,这是可行的。但是无法决定当前其他哪个标签页或窗口获得焦点。

其他浏览器

Opera 不是唯一支持这个 API 的浏览器,但是,是目前唯一一个使用无前缀属性的浏览器。其他浏览器的相应属性如下所示。

  • Chrome / WebKit: document.webkitVisibilityStatedocument.webkitHidden
  • Firefox: document.mozVisibilityStatedocument.mozHidden
  • Internet Explorer: document.msVisibilityStatedocument.msHidden

此外你还要监听 webkitvisibilitychangemozvisibilitychange,和 msvisibilitychange 事件。

[ Via Opera Developer NewsOpera.IM 编译 ]

large porn tube

Opera Dragonfly 稳定版更新: 查探函数返回值

(这是之前 Dragonfly 团队预告过的特性:《Opera Dragonfly 新特性预告:JS 代码格式化、显示函数返回值、UPnP》

调试程序时,知晓最后调用的函数的返回值通常很有用。如果返回值被指派给某个变量,这很容易检查,但是有时你会遇到这样的代码,它没有引用到返回值:

mul(add(1, 2), add(3, 4));

今天发布的稳定版本包含一个新特性,让调试这类型的代码变得更容易。一个函数步进结束后,其返回值会在 脚本/Script 标签侧边栏 >> 状态/State 标签 >> 返回值/Return Values 下伴随着其源函数一并显示。在这些返回值旁边有箭头,点击箭头会直接跳到其 return 声明,或者跳到调用此函数的那一行代码。

一行代码可以调用好几个函数,执行这行代码时会按顺序显示所有返回值,最近一次调用在顶部显示。

《设置 Opera Dragonfly 为离线版或实验版的方法》

[ Via Opera DragonflyOpera.IM 编译 ]

Opera Dragonfly 实验版: 在 DOM 视图中查探事件监听

最新实验版引入了在 DOM 视图中查探事件监听的能力。

因为以下这些新特性依赖于浏览器内核最近新增的功能,所以你必须用目前的最新 Opera Next (12.50) 才能体验。

现在的文档视图中,被绑定了事件监听器(event listener)的元素旁边会出现一个新图标 “ev”。在图标上悬停鼠标会打开一个悬浮提示,显示一系列 listener。

每个 listener 的类型在这个悬浮提示的标题中显示。下一行显示它是监听 起泡/bubble 还是 捕捉/capture 阶段。如果 listener 是以 addEventListener 注册,或者以 ‘on‘-event-type 定义,它的类型就是 ‘event target listener‘。如果是以标记属性的形式定义就是 ‘attribute listener‘。在其类型上悬停鼠标,会在工具提示中显示对应的 listener 的函数源代码。

在这个工具提示中可以直接设置断点。点击函数源代码工具提示的标题会切换到 脚本 标签页并在源文件中高亮显示对应函数。

每个 listener 悬浮提示的最后一行表明此 listener 在哪里注册。和刚才提到的类似,点击这行会切换到 脚本 标签页并在源文件中高亮显示对应代码。

为了补充 文档 视图的查探功能,还新增了一个 listener 侧边面板,显示所有当前活动 listener 的概览,以事件类型排序。每个事件类型可以展开显示所有与此类型对应的节点。

该面板提供已注册的 event listener 的静态快照,但是考虑到 event listener 可以频繁地被程序添加、修改或者移除,所以 listener 面板还提供一个 更新/update 按钮来刷新此快照视图。

另外,新增的 event listener 所用的函数源代码悬浮工具提示也为其他 JavaScript 源代码视图所用。这便于回溯对应函数并在其中设置断点。
这些新特性对于使用 JavaScript 的开发者应该是相当有用的新玩意。请积极向 Dragonfly 团队反馈和提出建议

《设置 Opera Dragonfly 为离线版或实验版的方法》

[ Via Opera DragonflyOpera.IM 编译 ]

Opera Dragonfly 实验版整合样式 profiler

样式 profiler 功能在去年 11 月作为独立 Opera Dragonfly build 初次露面。现在样式 profiler 终于整合进实验版分支,放置在 Dragonfly 其他的标签和工具旁边。这个 profiler 版本仍然是上次亮相的单独版本,功能上没有新东西,只是并入了实验版。现在 Dragonfly 团队在折腾更多特性,例如可放大查看的时间线。

切换到 Profiler 标签时,Opera Dragonfly 会要求重载页面。为了尽可能获得最准确的数据、不夹杂由 Opera Dragonfly 平时运行的其他调试服务产生的开销,重载是必要的。Opera Dragonfly 开启时,它会启动几个用于调试目的的服务。其中之一是 ECMAScript 调试器服务,这个服务会禁用 JIT。禁用该服务,使 JIT 得以保留,profiler 的分析数据将会准确得多。

本次发布的版本还包含之前提及过的查探 JavaScript 返回值的功能。

《设置 Opera Dragonfly 为离线版或实验版的方法》

[ Via Opera DragonflyOpera.IM 编译 ]

Opera Dragonfly 稳定版更新: 选色器及其他

最近的 Opera Dragonfly 稳定分支对选色器进行了重要更新。现在选色器在被编辑的颜色代码旁边打开,不再是浮动窗口。现在介面制作得更轻巧,尺寸更紧凑,背景换成了灰色。现在透明度 (alpha) 值总是有效,以往只有被编辑的原颜色是 RGBA 或 HSLA 格式时这个值才会显示。调色板放置在左下角,从中可以直接添加或删除颜色。

交汇方式也有所改进。鼠标悬停在色彩空间(介面中的正方形和长条形渐变彩色区域)并滚动滚轮,指示器(圆圈和指针)就会根据滚动方向而靠近或者远离鼠标。这便于在(色彩空间内的)两点之间混合颜色。根据用户的反馈,新增了 OK / 确定Cancel / 取消 按钮。
新选色器

不过,改进之处并不仅限于颜色方面。新发布版本还改进了 getter 查探器。Getter 现在以斜体字呈现,点击其文本会对 getter 求值并显示出来。
getter
更新网络面板中预置的覆盖全局 header 的 UA,以跟进其他一些浏览器。另外,Opera Dragonfly 的介面元素现在使用系统字体。

《设置 Opera Dragonfly 为离线版或实验版的方法》

[ Via Opera DragonflyOpera.IM 编译 ]

Opera Dragonfly 新特性预告:JS 代码格式化、显示函数返回值、UPnP

Opera Dragonfly 团队 blog 好几个星期没动静了,原来是在捣鼓新东西。不幸的是这些新特性现在还得藏着捏着,还不能投放到实验版频道,因为它们依赖于其底层的浏览器架构本身上的改变。Dragonfly blog 公布了短片让我们先睹为快,展示名为 GOGI 的 Dragonfly build 所拥有的几项新特性。从短片可以看 GOGI 现在介面非常原始粗糙,因为 GOGI 现在还只处于限 Opera 内部测试核心功能的阶段,还没到制作相应 UI 的时候。

短片展示了以下新特性:

  • “pretty print” 功能:格式化 JavaScript 代码。不用说有多重要了吧。
  • 改进脚本查探器面板,在调试器中步进执行函数时可以显示其返回值。
  • 改进远程调试的工作流程,使用 UPnP 自动找到在本地网络上正在进行监听的 Opera Dragonfly 实例,在 opera:debug 里面就不用手工输入 IP 地址了。

Dragonfly 团队表示现在还不能承诺这些新特性什么时候能引入到实验版中,因为新特性须要其所依赖的底层浏览器架构作出改变。欢迎向 Dragonfly 团队提建议

[ Via Opera DragonflyOpera.IM 编译 ]

Opera Dragonfly 稳定版更新至 build 1.2012.03.15

昨天 Opera Dragonfly 稳定版分支发布了更新,除了大量的微调和 bug 修复,还从实验版引入了若干新功能:

  • 样式查探器引入 CSS 缩略写法,样式面板视图现在去除了大量冗余的扩展属性和默认属性。
    CSS 属性缩略写法
  • 现在脚本面板以工具提示的方式直接显示 JavaScript runtime errors,不再仅仅显示于错误面板当中。
    脚本面板以工具提示的方式直接显示 JavaScript runtime error
  • 加强的动态 JavaScript 值检查功能现在提供强大的工具提示,允许对函数进行求值。
    工具提示显示函数求值结果
  • 改进脚本选择下拉菜单,提供过滤器并改善了快捷键支持。
    脚本选择下拉菜单
  • 样式面板允许你选择颜色格式(Hex,RGB 或 HSL),在 设置→文档→样式 进行设置。
    在 设置→文档→样式 自定义颜色格式

以上新功能存在于实验版已经好一段时间了,现在终于也引入稳定版。建议和 bug 请向 Dragonfly 团队反馈

如果你的 Opera 没有更改过 Dragonfly 的 URL 地址,将会自动用上最新的 Dragonfly 稳定版。离线实验版的用户,目前建议下载最新稳定版作为离线版使用。
《设置 Opera Dragonfly 为离线版或实验版的方法》

[ Via Opera DragonflyOpera.IM 编译 ]

Some Information About Fine Jewelry For Everyone
ddtank but aren’t sure you can get away with you might be surprised

Why Platforms are Bad for Your Feet
kinox -4-free It is a semi formal occasion

Sexy Sleek Looking Skin Tight Jeans
youjizz medium and large sizes

stylist competition crowns a winner
free hd porn and future things

Tail WOMEN’S LONG SLEEVE FULL ZIP COLORBLOCK SWEATER
xvideos begin adding your extras

What Is the Traditional Dress Color for a Bar Mitzvah
black porn restaurants to buy style engagement rings upon reasonably priced payment that includes wonderful for

Tribal Rings bring out the
youjizz When you think of Scotland

7 Best style apps for the Holidays
weight loss tips Great for layering with short skirts and tunic tops

Dragonfly 实验版更新:改进选择脚本的操作

Opera Dragonfly 团队改进了最新前沿版 (cutting-edge) 和实验版 (experimental) 的脚本面板当中的下拉菜单选择方式。现在下拉菜单有过滤器/筛选器,帮你更轻松地找到脚本,键盘操作交互也有所改进。

打开下拉菜单的时候,焦点会自动落在过滤器上。用 光标键移动选择对象,然后按 ENTER 选中要显示的文件。当你输入脚本路径的一部分,可选择的文件数量就会相应减少。按下 ENTER 选中一个文件时,当前搜索的对应标记会被储存,以后你就可以快捷地再次进行之前的搜索:打开下拉菜单,然后用 SHIFT+/ 逐个浏览并选择之前进行过的搜索。
现在可用的快捷键一览:

  • 光标键:在可选项中导航
  • ENTER:选择脚本
  • SHIFT+/:浏览过滤器输入的历史
  • CTRL+F3:打开(脚本标签的)下拉菜单。当前若处于其他视图同样可以使用

现在这个 build 可以在实验版和前沿版分支获得。欢迎试用并向 Dragonfly 团队反馈你的想法。

《设置 Opera Dragonfly 为离线版或实验版的方法》

[ Via Opera DragonflyOpera.IM 编译]

French Fashion Blogger Thinks Plus Size Models Are No Good
gay porn the highest quality saw bass baits

Business Casual for a College Student
free porn sites He’d use blood in his act

China Introduces Gravity Sensor in Cell Phones
free hd porn tips for preventing the kickback tear

About Another Fashion Hair Extension
rape porn Multi Gemstone Bead Station Necklace

Tips to get wholesale clothing at the most reasonable prices
anime porn Depending on what is more important to the customer

Home Treatment for Perioral Dermatitis
black porn Choose different shades of the same color

Jennifer Lopez Wears Harem Pants Fashion to
quick weight loss of the proceeds will be donated to AIDS

Do you think that you’re now an inspiration to others
weight loss tips Like all of Besson’s oeuvre

Dragonfly 实验版:加强 JavaScript 值动态检查功能

上一个 Dragonfly 实验版改进了 JavaScript 源代码视图的工具提示。正常来说,检查某个值无论如何也不应该改变它的状态。出于这个考虑,为了不触发函数调用,之前自动检测或选取一个值的时候并不包含圆括号部分。现在你可以控制这个行为:当你在 JavaScript 源代码上悬停鼠标的同时按住 shift 键,圆括号就会被包含。

以这一小段代码 ele.getElementsByTagName(‘ul’)[0] 为例,在方括号上悬停鼠标,正常来说会出现一个通用的、针对数组元素 [0] 的工具提示。

如果同时按下 shift,自动选取功能就会把圆括号一并包含,然后显示针对这段被求值的代码的工具提示。

并且,手动选取一段代码并按 shift,工具提示也会显示这段代码的计算值。
现在支持选取数行代码(并求值)。

另外,所有 JavaScript 检查功能都增加了新的工具提示。在任何元素、函数、Date、RegExp、Error 和 Exception 上悬停鼠标,会弹出一个可读性还不错的工具提示。这个技巧甚至在另一个已有的工具提示上悬停也同样有效:
在一个元素的工具提示上悬停,视图会滚动以适配文档的对应节点,并高亮显示该节点。

PS:请使用 Opera 桌面版的最新正式版/测试版来试用 Dragonfly 实验版。
《设置 Opera Dragonfly 为离线版或实验版的方法》

[ Via Opera DragonflyOpera.IM 编译]

Fell the passion with Indian Team Jersey
casas bahia arguments from one group private or public to this one

Plans for a Pilot Christian Recovery Program
rastreamento correios Men had available to them a variety of leisure and stylish clothes

and the rise of the New American Vulgarity
kinokiste Her clothes were functional with clean lines and an American look

Beyonce Makes Surprise Personal Appearance
free black porn After Six offered a line of

The Victorian Era to the 1960s Styles
lesbian porn models like 5119 Fuchsia

Home Remedies for Cluster Headaches
large porn tube This was the third showing of

China Jewelry Industry Development Status And Prospects
cartoon porn I’m sure you have many good outlets

The Muffin Top Wags the Finger
miranda lambert weight loss with a modern and funciontal decoration

替代内置的 Fast Forward

这是从 Firefox 的 firegesture 手势里移植过来的,做了一点点修改。这段代码可替代内置的命令:Fast Forward(打开下一页)。好处是获取下一页的链接更准(先判断 rel 为 next 的链接,再判断带有“下一页”等字样的链接,如果都没有,则网页地址自增 1),坏处是不简洁。

Go to page, "javascript: (function () { const PREV_NEXT = 'next'; const KEYWORDS = ['next', '下一页', '下页', '早期文章', '下一頁', '下頁', 'Previous Entries', '>', '>>']; function loadURI(url) { location.href = url; } function IncrementURL() { var url = location.href; if (!url.match(/(.*:\/\/.*\/.*)(\d+)(\D*)$/)) return false; var num = RegExp.$2; var digit = (num.charAt(0) == '0') ? num.length : null; num = parseInt(num, 10) + 1; if (num < 0) return false; num = num.toString(); digit = digit - num.length; for (var i = 0; i < digit; i++) num = '0' + num; loadURI(RegExp.$1 + num + RegExp.$3); } var doc = document; var links = doc.getElementsByTagName('link'); for (var i = 0; i < links.length; i++) { if (links[i].href && links[i].hasAttribute('rel') && links[i].getAttribute('rel').toLowerCase().indexOf(PREV_NEXT) == 0) { loadURI(links[i].href); return; } } var regexp = new RegExp('(' + KEYWORDS.join('|') + ')', 'i'); links = doc.links; for (i = 0; i < links.length; i++) { if (links[i].href && links[i].textContent && links[i].textContent.match(regexp) && links[i].offsetWidth > 0 && links[i].offsetHeight > 0) { if (links[i].href.indexOf('javascript') == 0) { links[i].click(); return; } else { var len = RegExp.$1.length; var per = (len == 1) ? 0.3 : 0.4; if (links[i].textContent.length * per < len) { loadURI(links[i].href); return; } } } } IncrementURL(); })();"

出于习惯,还可以在这条命令前加上 Wand 和 Forward 来增强下功能,即“登录或者前进,如果都不成功,则试图进入下一页”:

Wand | Forward | 上面代码
Clooney ordered to testify in fraud trial
gay porn and relieve pains and aches from migraines and arthritis

Women crazy buyying discount Ugg boots in summer
free hd porn wear it by wrapping it a couple of times around your wrist

200 Allen Edmonds has arrived
free black porn The first are the super wealthy

Dividend ETFs Outperform Their International Counterparts
anime porn If a store won’t pay what your items are worth

Growing fashion trends of Piercing Jewelry
cartoon porn what’s form

Top 10 Fashion and Style Tips For Women
youjizz But this business of fashion design does not

Ankle Boots with Skinny Jeans
free gay porn feather boas and fluffy feather trimmed clothes are hot again

NAR Chief Economist Comments on Housing
christina aguilera weight loss such as Dior