2010-05-16 56 views
2

我想開發一個使用QtWebKit和JQuery的應用程序。QWebFrame :: evaluateJavaScript與HTML中的腳本標記

我需要知道的是,從文件中讀取JQuery和evaluateJavaScript它,還是將它嵌入到小部件中顯示的「頁面」內的腳本標記之間有什麼區別?

編輯:我似乎有這個想法至少部分。 evaluateJavaScript將顯然工作可靠;但如果我這樣做

baseurl = QUrl.fromLocalFile(
    QDir.current().absoluteFilePath("doesntexist.html")); 
view.setHtml(
    u""" 
    <html> 
     <head> 
     <script type="text/javascript" 
      src="jquery-1.4.2.js"> 
     </script> 
     </head> 
     <body></body> 
    </html>""", baseurl); 

該文件甚至永遠不會從磁盤讀取(與inotify檢查)。這也影響到正在初始化所用的BaseURL要麼

QUrl("file:/") 
QUrl("."); 
QUrl(); 

QUrl("file://") 

而且我也試圖改變腳本src參數爲絕對路徑的硬盤上,並以相對路徑與不「。/「 前面。

我該如何做到這一點(除了Qt資源系統)以獲得腳本標籤與本地js文件一起使用?這只是很少記錄,或者我錯過了什麼?

回答

0

您可以使用Qt Resource System和修改HTML來像這樣

<script type="text/javascript" 
     src=":/jquery-1.4.2.js"> 

,不要忘了在主

調用宏Q_INIT_RESOURCE或使用evaluateJavaScript

connect(view, SIGNAL(loadFinished(bool)), this, SLOT(loadJQuery())); 

... 

void MainWindow::loadJQuery() 
{ 
    QFile file("jquery-1.4.2.js"); 
    file.open(QFile::ReadOnly); 
    view->page()->mainFrame()->evaluateJavaScript(file.readAll()); 
} 

我想使用資源系統更好。

+0

閱讀我的問題 - 我專門問了一個「除了Qt資源系統」的方式。 – 2011-08-20 19:11:58