У меня есть букмарклет, который запускает javascript-функцию window.open для открытия небольшого окна с моим букмарклетом - внешней функцией, используемой для связи между любым посещаемым сайтом и моим сервером. Я бы хотел, чтобы favicon отображался при добавлении букмарклета на панель инструментов закладок. Я понимаю, что букмарклет - это javascript, к нему не привязан ни один домен, поэтому достижение этой цели будет либо трудным, либо невозможным.
Мое понимание проблемы:
Фавиконы просты для понимания, это ссылка в заголовке HTML-документа. Браузер может сделать это, добавив в закладки реальный сайт по ссылке. Однако, как вы видите, мой букмарклет запускается из кода запуска javascript, в котором нет HTML, поэтому нет ссылки на favicon . Я пока не готов сдаваться, но чувствую, что можно сделать какую-то инъекцию ...
На данный момент код запуска букмарклета выглядит так:
Текущий скрипт - букмарклет, без значка (обратите внимание, что весь код отформатирован с переносами строк - не будет работать во всех браузерах, обычно это одна строка)
javascript:void(window.open(
'http://mydomain.com/bookmarklet/form?u='
+encodeURIComponent(location.href)+
't='+encodeURIComponent(document.title),
'test','status=0,toolbar=0,location=0,menubar=0,
resizable=false,scrollbars=false,height=379,width=379'
));
Самое близкое, что я нашел к решению, заключается в следующем, но оно не открывает новое окно - просто создает новую вкладку с html в качестве страницы:
Рабочий значок, без окна закладки
javascript:'<!DOCTYPE html>
<html><head>
<title>Hello World</title>
<link rel="icon" type="image/png" href="http://www.tapper-ware.net/devel/js/JS.Bookmarklets/icons/next.png" />
</head>
<body>Hello World</body>
</html>';
Я попробовал комбинацию из двух, но, похоже, не использовал значок. Мне было бы любопытно узнать, может ли кто-нибудь увидеть тип обходного пути ... Я думаю, что это возможно, я просто не думаю, что он настроен правильно, как я пытался.
Мой гибрид двух - букмарклет, но без значка
javascript:'<!DOCTYPE html>
<html><head>
<title>Hello World</title>
<link rel="icon" type="image/png" href="http://www.tapper-ware.net/devel/js/JS.Bookmarklets/icons/next.png" />
</head><body>Hello World</body></html>';
window.open('http://mydomain.com/bookmarklet/form?u='
+encodeURIComponent(location.href)+
'&t='+encodeURIComponent(document.title),
'test',
'status=0,toolbar=0,location=0,menubar=0,resizable=false,
scrollbars=false,height=379,width=379').void(0);
Я использовал структуру html перед запуском window.open (), это успешно открыло мой букмарклет в новом окне, но значок значка не появился.
Логическое решение:
Я хотел бы, чтобы букмарклет указывал на страницу, которая представляет собой просто HTML-файл со ссылкой на значок фавиконы и сценарием запуска в <head>
. Тем не менее, я не хочу, чтобы это открытие в новой вкладке с пустым HTML-файлом, который затем запускает всплывающее окно .. Временное решение ..?
Существует похожий вопрос, но я, похоже, не нашел ответа, который ищу:
Как установить значок / значок при перетаскивании букмарклета на панель инструментов?
Исходный код рабочего Javascript favicon (без букмарклета):
http://www.tapper -ware.net / блог /? Р = 97
Мне было бы интересно узнать, что ваши нынешние знания / мысли по этому поводу будут