由于QWebFrame 提供了一个addToJavaScriptWindowObj
Javascript对象就变得非常的容易,要注意在跨页面的时候,该对象会被清除,所以你只要重新加回来
就可以了, 这一点跟GTK类似, 只要捕获WindowObjectCleared信号,在该信号处理函数里面执行
addToJavaScriptWindowObj
这种方法不用去修改Webkit的核心代码WebCore或者JavascriptCore, 所有工作都在应用层面实现,
可以说是简单又实用。
具体可以参考如下源代码:
// 实现一个新类
class QFoo : public QObject
{
Q_OBJECT
public:
QFoo(QObject *parent) {}
void initialize(QWebView *wv);
public slots:
void print(const QString &msg);
private slots:
void addObject();
private:
QWebFrame *wf;
};
void QFoo::initialize(QWebView *wv)
{
wf = wv->page()->mainFrame();
// Add to the javascript window object
addObject();
// connect the signal for javascript window object cleared, which happened
// at page switching etc.
connect(wf,