sti*_*tib 0 firefox spotlight xml macos
我已经将打开.webloc
文件的默认应用程序更改为 Firefox(使用RCDefaultApp,不错的套件,那个),这一切都很好,除了有点奇怪。如果我.webloc
使用脚本创建一个(我正在使用从这个脚本改编的 Perl 脚本来创建可聚焦搜索的书签),那么它会在 Firefox 中打开为一些无样式的 XML(带有“这个 XML 文件似乎没有与它相关的任何样式信息。文档树显示在下面”标题)。
现在奇怪的是:如果我将一个 URL 从 Firefox URL 栏中拖到桌面上,我会得到一个.webloc
由 Firefox 打开的文件,没有任何问题 - 但是当我查看内容时,它与我使用脚本创建的内容完全相同. 它必须与文件创建者有关 - 如果我打开 Firefox 创建的.webloc
文件,然后从文本编辑器中保存它,它就不再有效。
发生什么了?两个相同的 XML 位如何根据它们的创建方式以不同的方式打开?有什么神奇的地方我可以改变吗?
作为参考,这里是.webloc
由我的脚本创建的文件的内容(我也放置了由 Firefox 创建的文件,但由于它完全相同(我使用 diff 进行了检查),因此没有意义):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URL</key>
<string>http://www.spacetelescope.org/</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
尽管这两个 webloc 文件看起来相同,但它们并非如此。当您将 URL 拖到桌面时,系统会创建一个带有隐藏资源分支的 webloc 文件。您可以在终端中使用 derez 命令显示文件的资源分支:
derez /Users/<User Directory>/Desktop/ESA-Hubble.webloc
Run Code Online (Sandbox Code Playgroud)
对于您的示例 URL,资源分支是:
data 'drag' (128) {
$"0000 0001 0000 0000 0000 0000 0000 0003" /* ................ */
$"5445 5854 0000 0100 0000 0000 0000 0000" /* TEXT............ */
$"7572 6C20 0000 0100 0000 0000 0000 0000" /* url ............ */
$"7572 6C6E 0000 0100 0000 0000 0000 0000" /* urln............ */
};
data 'url ' (256) {
$"6874 7470 3A2F 2F77 7777 2E73 7061 6365" /* http://www.space */
$"7465 6C65 7363 6F70 652E 6F72 672F" /* telescope.org/ */
};
data 'TEXT' (256) {
$"6874 7470 3A2F 2F77 7777 2E73 7061 6365" /* http://www.space */
$"7465 6C65 7363 6F70 652E 6F72 672F" /* telescope.org/ */
};
data 'urln' (256) {
$"4553 412F 4875 6262 6C65" /* ESA/Hubble */
};
Run Code Online (Sandbox Code Playgroud)
在早期的 OS X 中,webloc 文件只是带有资源分叉信息的空文件。在某些时候,webloc 文件被“现代化”以包含属性列表数据,但资源分支信息没有被删除。
这意味着某些程序对 webloc 的支持可能不完整,即有时使用属性列表,有时使用资源分支。
也许可以使用 Firefox 提交错误,请求支持基于属性列表的 webloc?
归档时间: |
|
查看次数: |
1690 次 |
最近记录: |