2010-05-16 4 views
2

QtWebKit 및 JQuery를 사용하는 응용 프로그램을 개발하고 싶습니다.QWebFrame :: evaluateJavaScript 대 HTML의 스크립트 태그

내가 알아야 할 것은 파일에서 JQuery를 읽고 JavaScriptJavaScript를 평가하거나 위젯 내에 표시되는 "페이지"내에 스크립트 태그로 삽입하는 것과 다른 점은 무엇입니까?

편집 :이 부분을 적어도 부분적으로 알아 냈습니다. 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로 검사 됨). 이것은 또한 base을 함께 초기화되고 영향을 미치는 중 하나

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

또는

QUrl("file://") 

그리고 나는 또한 하드 드라이브에 절대 경로에 스크립트 SRC 매개 변수를 변경하려고하고와없는 상대 경로에있다 "./"앞에.

Qt Resource System을 제외하고 스크립트 태그를 로컬 js 파일과 함께 사용하려면 어떻게해야합니까? 이 사실이 제대로 문서화되지 않았습니까? 아니면 제가 누락 된 것이 있습니까?

답변

0

당신은 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()); 
} 

Qt Resource System을 사용하고이

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

처럼 뭔가에 HTML을 수정하고 호출 매크로 주요

에서 Q_INIT_RESOURCE 또는 사용을 잊지 마세요 수 나는 자원 시스템을 사용하는 것이 더 낫다고 생각한다.

+0

내 질문 읽기 - "Qt 리소스 시스템을 제외하고"특별히 요청했습니다. –

관련 문제