crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QWebKit & document.referrer, Как можно установить?
kerdster
  опции профиля:
сообщение 26.1.2011, 12:34
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 1.2.2009
Пользователь №: 520

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день.

У меня случился затык, никак не получается установить изначальный реферер для явы при загрузке страницы в QWebView.
Пробовал разными способами, такими как например
web_view->page()->mainFrame()->evaluateJavaScript("document.referrer = 'http://olololo.com/';");

Или так:
web_view->page()->mainFrame()->documentElement().setAttribute("referrer","http://olololo.com/");


В разных слотах QWebView - urlChanged, LoadStarted и т.д.

Как можно решить проблему? Или вообще есть способы поменять какие-то свойства объекта document на странице?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 26.1.2011, 13:33
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(kerdster @ 26.1.2011, 12:34) *
Как можно решить проблему? Или вообще есть способы поменять какие-то свойства объекта document на странице?
Есть конечно. И судя по коду ты правильно всё делаешь. Вот только менять атрибуты нужно после того как страница будет полностью загружена.
Т.е. сначала подписываешься на сигнал завершения загрузки страницы
    web_view->load(QUrl("./index.html"));
    connect(web_view, SIGNAL(loadFinished(bool)), this, SLOT(finish(bool)));
И в слоте, когда вся страница будет загружена, устанавливаешь нужный атрибут
void MainWindow::finish(bool ok)
{
    web_view->page()->mainFrame()->documentElement().setAttribute("referrer","http://olololo.com/");
    qDebug() << web_view->page()->mainFrame()->documentElement().attribute("referrer") << ok;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kerdster
  опции профиля:
сообщение 26.1.2011, 13:44
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 1.2.2009
Пользователь №: 520

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо за ответ!
Но будет ли в этом случае работать если ява захочет реф узнать прямо в процессе загрузки, например:
document.write(document.referrer);

?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 26.1.2011, 13:59
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(kerdster @ 26.1.2011, 13:44) *
Но будет ли в этом случае работать если ява захочет реф узнать прямо в процессе загрузки, например:
Понятия не имею. Просто нужно попробовать. Я далек от веб разработки и не совсем понимаю какого эфекта добиваетесь.
Если что то не получится, описывай задачу более подробно и приложи минимальный компилируемый пример, попробуем разобраться
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kerdster
  опции профиля:
сообщение 26.1.2011, 13:59
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 1.2.2009
Пользователь №: 520

Спасибо сказали: 0 раз(а)




Репутация:   0  


Разобрался!
Это я дурак, при запросе через QNetworkRequest с установкой заголовка реферера всё ОК с явой! Она берёт его оттуда =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 8.8.2022, 22:28