QT Webkit 添加JS对象

QT Webkit通过QWebFrame的addToJavaScriptWindowObject()接口允许轻松地添加自定义JavaScript对象。当跨页面时,该对象会被清除,可通过监听WindowObjectCleared信号并在处理函数中重新添加。这种方法避免修改Webkit核心代码,实现简单且实用。
摘要由CSDN通过智能技术生成
 

由于QWebFrame 提供了一个addToJavaScriptWindowObject()接口, 所以在QT Webkit下添加一个自定义的
Javascript对象就变得非常的容易,要注意在跨页面的时候,该对象会被清除,所以你只要重新加回来
就可以了, 这一点跟GTK类似, 只要捕获WindowObjectCleared信号,在该信号处理函数里面执行
addToJavaScriptWindowObject()就可以了。

这种方法不用去修改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,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值