Название: JavaScript: переопределение объекта screen Отправлено: serg_hd от Март 04, 2010, 22:13 Проблема в том, что нужно задать свои свойства у объекта screen (такие как разрешине экрана, глубина цвета, etc.), а имеющиеся в наличии методы webView.page().mainFrame().evaluateJavaScript() и webView.page().mainFrame().addToJavaScriptWindowObject() этого сделать не могут. Пробовал подставлять для evaluateJavaScript():
Код С addToJavaScriptWindowObject() работал в слоте сигнала javaScriptWindowObjectCleared фрейма: Код Никак( И что обидно, браузер хром вроде на движке вебкита, а позволяет так делать. Название: Re: JavaScript: переопределение объекта screen Отправлено: niXman от Март 05, 2010, 02:33 Цитировать И что обидно, браузер хром вроде на движке вебкита сомневаюсь.(http://rghost.ru/1099509/image.png) (http://rghost.ru/1099512/image.png) Название: Re: JavaScript: переопределение объекта screen Отправлено: niXman от Март 05, 2010, 02:36 судя по описанию:
тут: http://code.google.com/p/v8/ и тут: http://dev.chromium.org/Home вебкитом и не пахнет. Название: Re: JavaScript: переопределение объекта screen Отправлено: serg_hd от Март 05, 2010, 03:03 http://ru.wikipedia.org/wiki/WebKit :
"2 сентября 2008 года — компания Google объявила о выпуске собственного браузера Chrome на основе движка WebKit." Да и не в этом суть. Проблема решаема или нет - вот в чём вопрос. Название: Re: JavaScript: переопределение объекта screen Отправлено: kkk777kkk от Март 05, 2010, 12:09 niXman, если зайдешь в "и другого программного обеспечения с открытым исходным кодом" на твоем скрине, то найдешь там webkit ;)
Название: Re: JavaScript: переопределение объекта screen Отправлено: niXman от Март 05, 2010, 14:36 kkk777kkk, а ссылку можно? ;)
Название: Re: JavaScript: переопределение объекта screen Отправлено: kkk777kkk от Март 05, 2010, 16:32 "....І нарешті, оскільки Google Chrome створено на базі WebKit..." http://www.google.com/chrome/intl/uk/webmasters-faq.html Название: Re: JavaScript: переопределение объекта screen Отправлено: niXman от Март 05, 2010, 19:14 не понятно то, что вебкит использует свой яваскрипт движок. так нафига гуглу брать вебкит, и менять в нем яваскрипт движок на свой?
что-то не стыкуется. Название: Re: JavaScript: переопределение объекта screen Отправлено: serg_hd от Март 06, 2010, 02:36 вебкит для qt 4.5 юзает яваскрипт движок SquirrelFish (насколько я понял), а хром другой, видимо, по каким-то своим убеждениям. Кстати интересно ещё, может можно как-то "пересобрать" SquirrelFish? Отменить в нём "private" для объекта screen например)
Название: Re: JavaScript: переопределение объекта screen Отправлено: xsentin от Февраль 20, 2011, 18:37 на данный момент не нашлось решения?
Название: Re: JavaScript: переопределение объекта screen Отправлено: serg_hd от Февраль 20, 2011, 19:24 Было почти год назад, мало что помню. Помню только, что пересобирал вебкит со своими изменениями, всё работало как было запланировано. В движке показалось это дело довольно запутанным, но разобраться вполне реально. Из заметок осталось:
1. Для изменения readOnly свойств объектов js надо редактировать файлы с префиксом JS, напр.: c:\WORK\Qt_4.7.0\src\3rdparty\webkit\WebCore\generated\JSDocument.cpp Редактировать надо массив (пример - файл JSScreen.cpp): { "height", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsScreenHeight), (intptr_t)jsSetScreenHeight }, где jsSetScreenHeight - функция, куда будет передано новое значение свойства, её следует описать. В класс, где все свойства объекта только на чтение следует добавить метод void JSScreen::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot) { lookupPut<JSScreen, Base>(exec, propertyName, value, &JSScreenTable, this, slot); } Он производит присвоение нового значения свойству. Название: Re: JavaScript: переопределение объекта screen Отправлено: xsentin от Февраль 21, 2011, 00:29 подскажите из этой же темы, можно ли evaluateJavaScript() переопределить navigator.plugins?
если нет, то какими способами можно воспользоваться? |