Страницы: 1
Здравствуйте. Встроил gecko в свое приложение. При попытке прокрутить страницу средней кнопкой мыши ничего не выходит. И так пока не выделишь какой-нибудь input или не перейдешь по ссылке. Если потянуть мышью за скроллбар, то работает. Фокус контролу передавал и SetFocus интерфейса nsIBaseWindow вызывал. Может кто-то подскажет в чем может быть проблема?
Так пока и сделал - зарегистрировал свой класс. Диалоги не показываются. Но если их придется затем включить, можно ли как-то вернуть родной класс Мозилы отвечающий за это или придется реальзовывать уже все в своем классе?
Здравствуйте.
Интересует как можно выключить функцию печати в Gecko. То есть чтобы при выполнении JS функции window.print(); не открывался диалог выбора принтера и т.д.
Может какая-то настройка есть? Нашел только "print.show_print_progress", но это только отключение отображения прогресса печати.
Пока придумал вариант написать пустой класс поддерживающий nsIPrintingPromptService и зарегистрировать его. Может есть более простой вариант?
Все вопрос к счастью для меня решен... Нужно было указать директорию профиля. После этого стало работать нормально.
Поддерживает
Попробовал повесить обработчики mouseover и mouseover, чтобы вручную менять вид указателя. Проверял, если target элемент ссылка то указатель менять. Но мозила все равно возвращает его в свое положение....
Может попробовать через интерфейс nsIDOMSerializer? У него есть метод SerializeToString.
var s = new XMLSerializer(); var d = document; var str = s.serializeToString(d); alert(str);
Ещё раз спасибо!
Не за что :)
Нужно поменять настройки браузера. На Delphi так:
procedure ChangeUserAgent(UserAgent:string); var PrefService: nsIPrefService; PrefBranch: nsIPrefBranch; const PREFSERVICE_ContractID= '@mozilla.org/preferences-service;1'; begin NS_GetService(PREFSERVICE_ContractID, nsIPrefService,PrefService); PrefService.GetBranch('general.useragent.',PrefBranch); PrefBranch.SetCharPref('override', PChar(UserAgent)); end;
Здравствуйте. Встроил Gecko 2.0 в свое приложение. Появилась проблема с указателем мыши- когда подводишь мышь к текстовой ссылке, то он меняется не на указатель в виде руки с вытянутым пальцем, а на вертикальную черту, как в текстовом поле. Если ссылка в виде изображения, то указатель вовсе не меняется. В Gecko 1.9.1 этой проблемы не было.
И еще один вопрос про nsIDownloadManager - кто-то знает как им пользоваться? Пробовал запросить через CompopnentManager и ServiceManager, но безуспешно.
Попробовал версию 2.0 . Там таких проблем не возникло. Но есть пару других - не удается зарегистрировать свой Prompt Service, точнее он регистрируется, и через NS_GetService вызывается, но Gecko почему то его не использует, когда страница вызывате Alert или другой диалог. И курсор пи наведении на элементы не менялся на указатель, страница не прокручивалась колесиком мыши, только перетягиванием ScrollBar. А в общем мне версия 2.0 нравится - быстро инициализируется движок, даже быстрей чем 1.9.2 и по моему странница быстрей грузится. Буду ждать релиза. пока что буду на 1.9.1
Кстати никто не знает как использовать nsIDownloadManager. Через NS_GetService не вызывается. Может его как-то нужно инициализировать? Вообще первоначальная задача - отследить момент скачивания файла, чтобы вывести свой диалог и т.д. Если браузер нарывается на файл типа rar или exe, то пишет, что неизвестный формат, он его пропарсить я так понимаю пытается. А мне нужно чтобы в этот момент сработал какой-то обработч
…Не знаю как в дополнении. Но на Delphi делаю так:
Browser.QueryInterface(nsIWebBrowserSetup,BrowserSetup); BrowserSetup.SetProperty(NS_IWEBBROWSERSETUP_SETUP_ALLOW_IMAGES,1); - 0 выключить
Browser это nsIWebBrowser, а BrowserSetup - nsIWebBrowserSetup
Подействует только при следующей загрузке страницы.
В дополнении наверное тоже что-то в этом роде.
Константы настроек можно посмотреть тут http://www.mozilla.org/projects/embeddi … api10.html
Здравствуйте.
По окончанию загрузки страницы вылетает ошибка "invalid floating point operation". Если выключить исполнение JavaScript в браузере, то ошибка не появляется и страница грузится нормально. В версии 1.9.1 такого не было. Может кто-то подскажет, что изменилось и как исправить эту проблему?
Буду благодарен любой помощи.
Gecko встроен в приложение на Delphi. Интересует как можно остановить выполнение скриптов в уже загруженной странице. Если устанавливаю Setup для nsIWebBrowser, то изменения вступают в силу, только при следующей загрузке страницы, а активный скрипт продолжает работать. Это нужно для борьбы с постоянным открыванием диалогов в цикле, как в Opera в каждом диалоге есть CheckBox - запретить исполнение скриптов.. Пока что для каждого окна создал поле, в котором записываю разрешено этому окну создавать диалоги или нет. Но постоянная проверка(если скрипт создает диалоги в цикле без перерыва) грузит процессор. Хотелось бы выключить исполнение скриптов в текущем окне. Если у кого-то есть пример на Си или просто идеи буду очень благодарен.
Здравствуйте. Использую Gecko в приложении delphi. Появилась проблема - не отображаются диалоги JS(alert, confirm и т.д.). За это вроде должен отвечать PromptServis.
Если я все правильно понял, то его нужно реализовать самому. Его написал, но не знаю как его зарегистрировать.
procedure RegPromptServis; var compR:nsIComponentRegistrar; aFactory: nsIFactory; mtpr:TPromptServis; r:nsresult; const PromptService_CID: TGUID = '{a2112d6a-0e28-421f-b46a-25c0b308cbd0}'; PromptService_ContractID= '@mozilla.org/embedcomp/prompt-service;1'; begin mtpr:=TPromptServis.Create;// Мой класс r:=NS_GetComponentRegistrar(compR); if not NS_FAILED(r) then begin //Тут не знаю как связать aFactory с моим классом compR.RegisterFactory(PromptService_CID,'Prompt Service', PromptService_ContractID,aFactory); end; end;
Может кто-то работал с Gecko в Delphi? Подскажите как бороться с этими диалогами.
Заранее спасибо.
Страницы: 1