当JS涉及时,QWebView不显示页面

时间:2014-06-11 11:51:47

标签: qt windows-ce qwebview

我成功地编译了Qt 4,包括WinK的WebKit。 QWebView似乎运行正常 - 我可以加载HTML5文档并显示它。

ui.webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);

ui.webView->setUrl(QUrl::fromLocalFile(QFileInfo(QLatin1String("test.html")).absoluteFilePath()));

但是,只要页面包含任何JavaScript(即使空脚本标记已经导致问题),QWebView也只会显示空白页面。

QWebInspector窗口也无法显示,因为它只显示一个空白窗口。

我怀疑这是一个常见的问题,所以我的问题是,我如何能够深入研究这个问题。 QWebView有调试日志吗? 不幸的是,执行时没有异常或断言失败。

有什么想法吗? :) 提前谢谢。

修改: 这是创建问题的测试代码。 loadFinished的前四行是一些用于检查有效指针的测试代码,以及我是否可以在QWebFrame上调用方法。所有代码行都执行得很好,直到我获得访问冲突的evaluateJavaScript。

我无法在setHtml中发布HTML代码,似乎被Stackoverflow禁止。

ce0::ce0(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
ui.setupUi(this);

connect(ui.webView, SIGNAL(loadFinished(bool)), SLOT(loadFinished(bool)));

ui.webView->page()->settings()->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls, true);
ui.webView->page()->settings()->setAttribute(QWebSettings::LocalContentCanAccessFileUrls, true);
ui.webView->page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
ui.webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
//ui.webView->setUrl(QUrl::fromLocalFile(QFileInfo(QLatin1String("test.html")).absoluteFilePath()));
ui.webView->setHtml(...);
}

void ce0::loadFinished(bool ok) {
    QWebPage* p = ui.webView->page();
    QWebFrame* f = p->mainFrame();  
    QString qs = f->title();

bool x = ui.webView->page()->settings()->testAttribute( QWebSettings::JavascriptEnabled );

f->evaluateJavaScript("document.getElementById(\"content\").innerHTML = \"Whatever\";");
}

0 个答案:

没有答案