#include <QtGui>
#include <QtWebKit>
const char * TEST_PAGE
= "<html xmlns=\"http://www.w3.org/1999/xhtml\">"
" <head>"
" </head>"
" <body>"
" <p>Hello World</p>"
" <script type='text/javascript'>"
" var gin = [10, 11];"
" var gout = window.test.test( gin );"
" var dout ='';"
" for( var i in gout )"
" dout += '[' + gout[i] + ']';"
" var din = '';"
" for ( var i in gin )"
" din += '<' + gin[i] + '>';"
" alert( 'In: ' + din + '\\nOut:' + dout );"
" alert( 'gout: ' + gout );"
" </script>"
" </body>"
"</html>";
class Object : public QObject
{
Q_OBJECT
public:
Object( QWebPage * p ) : page( p )
{
connect( page->mainFrame(),
SIGNAL( javaScriptWindowObjectCleared() ),
this, SLOT( setupWindowObject() ) );
}
public slots:
void setupWindowObject()
{
QWebFrame * frame = page->mainFrame();
frame->addToJavaScriptWindowObject( "test", this );
}
QVariant test( QVariant var )
{
return var;
}
private:
QWebPage * page;
};
#include "main.moc"
int main( int argc, char * argv[] )
{
QApplication app( argc, argv );
QWebView view;
view.setHtml( TEST_PAGE );
view.show();
QWebPage * page = view.page();
Object box( page );
return app.exec();
}
- 1
- 2
- 3
- 4
- 5
前往页