Я изменил приложение по умолчанию для открытия файлов .webloc на Firefox (используя RCDefaultApp, хороший кусок набора, и все), и все в порядке, за исключением одного странного момента . Если я создаю .webloc с помощью сценария (я использую сценарий Perl, адаптированный из этого сценария для создания закладок, доступных для поиска в центре внимания), то он открывается в Firefox как немного нестандартного XML (с надписью «Этот XML-файл не отображается»). иметь любую информацию о стиле, связанную с ним. Дерево документа показано ниже «заголовок».

Теперь вот странность: если я перетаскиваю URL-адрес из панели URL-адресов Firefox на рабочий стол, я получаю файл .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>

1 ответ1

5

Хотя два файла webloc выглядят одинаково, это не так. Когда вы перетаскиваете URL-адрес на рабочий стол, система создает файл webloc со скрытой веткой ресурса. Вы можете открыть ветку ресурса файла, используя команду derez в терминале:

derez /Users/<User Directory>/Desktop/ESA-Hubble.webloc

Для вашего примера 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 */
};

Ранее в OS X файлы webloc были просто пустыми файлами с информацией о ветке ресурсов. В какой-то момент файлы webloc были "модернизированы", чтобы в них содержались данные списка свойств, но информация о ветке ресурса не была отброшена.

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

Может быть, ошибка может быть подана в Firefox, запрашивая поддержку веб-блоков на основе списка свойств?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .