Russian Qt Forum
Март 28, 2024, 18:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtWebkit и undefined  (Прочитано 3439 раз)
kna
Гость
« : Сентябрь 18, 2014, 18:19 »

Приветствую! Ситуация следующая: имеется QWebView, добавляю в него js объект:
Код:
...
page()->mainFrame()->addToJavaScriptWindowObject("window.obj", new Obj);
...

Часть объявления Obj:
Код:
class Obj: public QObject {
Q_OBJECT
Q_PROPERTY(QString prop READ prop)
public:
QString prop() const;
protected:
QString m_prop;
...
}
Q_DECLARE_METATYPE(Obj)
Q_DECLARE_METATYPE(Obj*)

Так вот, мне нужно в движке браузера вернуть undefined, к примеру:
Код
Javascript
window.obj.prop === ''; // true
window.obj.prop === undefined; // false (что характерно, а нужно чтобы было наоборот)
 

Смотрел в сторону QJSValue, получилось бы что-то вроде
Код:
class Obj: public QObject {
Q_OBJECT
Q_PROPERTY(QJSValue prop READ prop)
public:
QJSValue prop() const;
protected:
QJSValue m_prop;
...
}
Q_DECLARE_METATYPE(Obj)
Q_DECLARE_METATYPE(Obj*)

QJSValue Obj::prop() {
return QJSValue(QJSValue::UndefinedValue);
}
Конечно же такое не сработало
Код
Javascript
typeof window.obj.prop; // 'string'
window.obj.prop === ''; // true
 
Или если так:
Код:
QJSValue Obj::prop() {
return QJSValue("I'm empty");
}
Код
Javascript
typeof window.obj.prop; // 'string'
window.obj.prop === ''; // true, не то что надо
 

Похоже что JSC в QtWebkit не в курсе об QJSValue. Нужна обертка? Что делать? Непонимающий
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #1 : Октябрь 01, 2014, 14:21 »

Код:
...
page()->mainFrame()->addToJavaScriptWindowObject("window.obj", new Obj);
...


надо не "window.obj" передавать, а просто "obj"
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.111 секунд. Запросов: 22.