Safari的无法编写的标签

Many of you have been asking over the last few weeks what I think of Safari’s tabbed browsing(Actually, it’s been months, since the requests started coming when tabbed browsing first appeared in leaked private betas; but it’s unsportsmanlike to comment publicly on non-public software.)

一般情况下忽略标签式浏览优点的大问题,如果你要在网页浏览器中加入标签式浏览,Safari会让我感觉很好Safari标签式浏览体验比我尝试过的任何其他标签都要好Safari的标签是定制的控件正是医生订购的Camino使用标准的Aqua标签,虽然在适当的地方使用真正的Aqua小部件令人钦佩,但标准标签不适合标签式网页浏览,而Camino则受此影响。

如果小部件旨在提供任何标准控件未提供的功能,则自定义小部件没有任何问题Web浏览器中的选项卡与对话框中的标准选项卡的用途完全不同Safari的自定义标签比Camino的Aqua标准标签更有用,因为它们是左对齐的,以更直观的顺序打开,并且有紧密的方框。

但是,关于Safari选项卡中关闭框的一个抱怨我认为他们应该更接近窗口标题栏中的关闭框行为相似的小部件看起来应该相似No argument that Safari’s little buttons for closing tabs look better than the standard Aqua close boxes, especially against the metal theme, and also no argument that making the “X” always visible is much preferable to the way you need to roll over the standard Aqua close button to see the “X” — but those are reasons for Apple to improve the standard close buttons, not for Safari to branch out on its own.

但无论如何,Safari的标签式浏览存在一个巨大的问题,它与它们的外观无关这是他们完全无法写入的您无法通过AppleScript对它们进行任何操作 - 您无法创建它们,您无法关闭它们,甚至无法判断窗口是否有一个打开的选项卡或100换句话说,Safari的脚本字典仍受限于每个浏览器窗口只包含一个文档的假设。

毋庸置疑,这很糟糕。

早在二月份,我为Safari编写了一些脚本,这些脚本依赖于访问所有打开的网页:

  • 编写Safari URL的脚本包含一个供BBEdit使用的脚本,显示一个对话框,列出Safari中当前打开的每个网页您选择的任何一个URL都会插入最前面的BBEdit窗口非常适合链接到您已知道已打开的网页,但无需从BBEdit切换到Safari,然后返回BBEdit复制并粘贴URL。

  • 保存和还原Safari URL包含几个脚本,允许您保存所有当前打开的Safari窗口的列表,并在以后重新打开它们您可以在需要退出Safari时使用它,但打开一堆窗口仍需要稍后阅读。

这些脚本都不适用于选项卡中显示的网页,也没有任何方法可以更新它们以便它们可以Safari使用该术语文献引用显示的网页关闭选项卡后,您可以通过询问每个文档的URL来获取所有当前显示的URL的列表:

tell application "Safari"
    set url_list to URL of every document
end tell

启用标签式浏览后,每个文件仅返回每个窗口中最前面文档的列表因此,如果您打开两个窗口,每个窗口包含10个选项卡式网页,每个文件只返回两个项目:两个窗口中每个窗口的最前面的选项卡其他18个文档无法通过AppleScript无法访问且无法识别。

我希望看到的是一个分层对象模型也许顶级浏览器窗口对象,每个对象包含一个列表文件对应于每个打开的选项卡(没有理由在脚本字典中将它们称为“选项卡”)。

后记:Safari Anti-Aliasing

虽然Safari的AppleScript支持仍然令人沮丧,但WebCore渲染引擎仍然令人印象深刻对我来说最开心的是,公共测试版2修复了这个问题小等宽字体抗锯齿错误我两个月前抱怨过。

以前: 很多Ado关于点击率
下一个: SmartyPants 1.3