okkamas_knife:
хм, интересно:
1) Надоело уже рыскать чужие расширения =)
2) Под абсолютным путём имеешь ввиду путь на жестком диске? Я думаю кроссплатформенно это осуществить - довольно не тривиально.
3) Вот это интересно. Я так понимаю, что квадратная пнгшка в 48 пикселя не сильно длинно закодируется.
Ух.. просто рисую html прямо из расширения к которому и обращаюсь... это безопасно...
Но ясно. т.е. получается, выход только хостить эти иконочки?
Расширение рисует HTML формочку на экране.. с картинками, картинки берутся из расширения (из chrome://extension_name/content/pics/). Если я просто введу ссылку на изображение, то оно откроется, но в HTML виде, как <img src="..."> оно не открывается.
Даже если просто создать test.html в котором будет одна строка с <img src="chrome://.."> то оно почему-то не открывается.
Как так?
С расширениях добираюсь до элементов, которые не имеют определенного идентификатора. Приходится к ним подбираться через DOM. В FireBug есть отличная опция, которая показывает XPath путь к элементу.
Подскажите плз, что быстрее - обращаться через методы DOM к элементу, или через XPath путь (кроссбраузерность конечно не волнует, выполняется из-под оболочки Firefox (неудобно её теперь называть Хромом, а то подумает на другой браузер).
Конкретный пример сейчас привести не могу, исходники далеко находятся, но примерно это выглядит так:
вариант 1-ый:
document.body.firstChild.children[3].lastChild
или же XPath:
/html/body/div/div[3]/form/div/div/input (пример не равен первому, просто скопипастил любой элемент через fireBug)
консоль ошибок ничего не говорит.
Ошибку я понял сам. Оно наверное даже выполнялось верно. Суть в чём, страница загрузилась, фрейм вероятно тоже успел загрузится. Как страница загрузилась, она привязала "алерт" на загрузку фрейма, но он тоже уже загружен - понятно почему ничего не происходит...
Я просто это убрал, надеюсь на то, что фрейм будет всегда загружаться когда и вся страница загружалась. Это не совсем хорошо, в 1 раз из где-то 50 у меня выскакивает ошибка в консоле (что не могу достучаться до элемента во фрейме)... не приятно, но пока терплю
чё-то никак не получается
Скрипт висит в оверлее, и на определенном сайте должен добавить элемент в определенный фрейм.
у меня есть listeners.js, в котором говорится, что когда откроется mysite.ru, то нужно что-то делать:
// LISTENERS window. addEventListener ("DOMContentLoaded", onloadTrap, true); function onloadTrap (event) { if (event. originalTarget. nodeName == "#document") { if (event.originalTarget.location.href.indexOf("mysite.ru") != -1) { // мы на сайте window.setTimeout("main.weAreOnSite();", 1); } } }
тоже самое там есть для смены вкладок. но это не важно.
в другом файле у меня есть:
main = { //... , weAreOnSite : function() { //... window. _content. frames[0]. addEventListener("load", function() { alert("frame loaded"); }, true ); //.. }
и почему-то ничего не происходит.
Если я сразу обращаю к элементам во фрейме, то иногда может их не видеть - это я понимаю, что скрипт выполнился
…Крошка Ру
Пост №19 прочитал.. там всё равно проблема открытых ссылок из мессенджера и т.д. - не описывается. Но я там нашел ещё одну ссылку, на программку упрощенную, в которой можно выбрать вход (firefox launcher), что-то типа этого.
почему нельзя запускать --no-remote -P default? - я на каком-то мозилловском вики-сайте это прочитал (под лейблочкой Important!). Если делать так, то будут вылазить ошибки типа "Firefox уже запущен... трали-вали...." =)
Думаю сделать один ярлык и в нём просто указать -P... а там уже выбирать нужный профиль - самое простое. А ссылки из мессенджеров и почтовых клиентов будут открываться выходит по умолчанию из дефолтного профиля.
спасибо, покопался, разобрался. Работает.
Крошка Ру
[chrome] - это я для обычного сёрфинга, и чтения новостей использую хром. А вообще [firefox] использую.
Вопрос мне нужно решить для [windows]-пользователей.
там по ссылке сказано использовать -no-remote. Но ведь нельзя запускать -no-remote дефолтный профиль? и тогда непонятно как откроются линки из мессенджеров и т.д.
спасибо =)
придётся рыться в чужом коде =)
У Firefox есть 2 профиля - обычный и рабочий (default и work).
Мне нужно, чтобы на рабочем столе было 2 ярлычка Firefox'а - один с обычным профилем, другой - с рабочим. Так, чтобы я могу нажать на нужный, и открылся нужный профиль.
Если я просто открываю firefox (где-то другую иконку нашел допустим), без параметров, то должен открыться дефолтный.
Если же я просто открываю .html файл или кликаю по ссылке из мессенджера, то должен открыться дефолтный.
Как это сделать?
я узнал, что нельзя создавать 2 ярлыка такого вида:
firefox -P default --no-remote
firefox -P work --no-remote
потому что будут проблемы с открытием firefox без парамтеров (ссылки из мессенджеров и т.д.) (Хотя я щас типа этого сделал у себя на компе в Убунту, и вторым открыл work-профиль. Теперь когда открываю firefox без параметров, открывается work профиль, а надо default).
Узнал, что default надо запускать без --no-remote, но если первым запустили work, то как мне запустить дефолт отдельтным потоком?
…Подскажите плз, можно ли в about:config найти такую настройку, которая показывает что загружать в новой вкладке?
Т.е. вот есть кнопка ("новая вкладка") я её нажимаю и открывается about:blank. А надо чтоб открывалась там домашняя страница.
Как это сделать?
при попытке открыть about:stuffA пишет:
The URL is not valid and cannot be loaded.
Не получается изменить код, чтоб 2-3 таких странички сделать...
Infocatcher
Спасибо, ясно.
Anton
Cпасибо
>> про адрес понятно. заметил.
А UUID можно новый, или тот же, что и в моём расширении?
странно..я просто увидел в примере 2 функции... и думал их надо вызвать... как-бы инициализирвоать эту about:mystuff
Anton
Не подскажите, как этот пример внедрить? там просто сами функции? А где и как их надо вызвать?
У меня такой вопрос... Делаю расширения для работы.. для узкого круга людей.. И там есть у нас пару документов, которые должны быть под рукой... Доступа к хостингу у меня нет, и выкладывать на сервер рабочий я не могу... было бы очень удобно, если бы я где-то в расширении сохранил эти документы. и они был открывались по ссылке из расширения с таким красивым заголовком как допустим: about:reference и т.д.
заранее спасибо.
Проблема решена.
вводить значение искомое через переменную и в виде \uXXXX....
есть файл data.js
var myJSONObject = {"places": [ {"placename" : "тест","city" : "МОСКВА","adress" : "..."}, {"placename" : "test","city" : "РЯЗАНЬ","adress" : "..."}, {"placename" : "неважно","city" : "ОДЕССА","adress" : "..."}, ... {"placename" : "...","city" : "...","adress" : "..."} ] };
и есть такой файл:
<html> <head> <script type='text/javascript' src='data.js' charset='utf-8'></script> <script type='text/javascript'> <!-- // ТАКОЕ НЕ РАБОТАЕТ! for (var i=0; i<2; i++) { if (myJSONObject.places[i].placename == 'тест') { alert(myJSONObject.places[i].city) } } // А ТАКОЕ РАБОТАЕТ: for (var i=0; i<2; i++) { if (myJSONObject.places[i].placename == 'test') { alert(myJSONObject.places[i].city) } } //--> </script> </head> <body> test </body> </html>
Как это исправить?
…ясненько... спасибо
Текст выделяется пользователем мышью? Если да, то тогда лови координаты мыши и рисуй абсолютный див с каким хочешь стилем. (Див как бы встраивается в саму страничку контента). Делается это через JavaScript + работа с DOM.
А если текст выделен пользователем клавиатурой, или вообще каким-то другим способом... То если я не ошибаюсь, ты можешь сделать так: координаты тебе не нужны. Просто допустим обрамляешь выделенный текст в DIV (через JavaScript), и сразу за ним добавляешь свой новый желтый DIV... и вот дальше (в этом я уже не уверен как), с помощью CSS заставляешь этот новый див отображается не "за объектом" - смещая всё далее, а над объектом.
Удачи.
Мне под винду.
Как работать с внедрением .dll-ок я не представляю, предстоит почитать. Ладно.
2 okkamas_knife
Последняя идея не плохая. А Яваскрипт может послать комманду нажатия кнопки Принтскрин? Тогда всё облегчается.. Яваскрипт посылает нажатие принтскрина, а потом считывает картинку из клипбоарда... А ещё... получится такое, если допустим FF не активное окно на данный момент? Можно ли сделать "глобальные шорткаты" в ФФ расширениях? (мне чисто для себя это, не для общего пользования, так что кросс-платформенность не страшит)