0
A
回答
3
我相信你可以通過在加載頁面之後查看QWebElment的集合來獲取加載頁面的內容類型。首先,您需要爲webview小部件設置loadFinished事件插槽。像這樣:
QWebView::connect(ui->webView, SIGNAL(loadFinished(bool)), this, SLOT(on_pageLoad_finished(bool)));
on_pageLoad_finished方法應該在每次頁面加載到webview控件時執行。您可以通過Web框架對象訪問Web元素集合。下面是一個可能實現的on_pageLoad_finished插槽
void MainWindow::on_pageLoad_finished(bool ok)
{
if (!ok) return;
QWebFrame* frame = ui->webView->page()->currentFrame();
if (frame!=NULL)
{
QWebElementCollection collection = frame->findAllElements("meta[http-equiv=content-type]");
foreach (QWebElement element, collection)
{
qDebug() << element.attribute("http-equiv");
qDebug() << element.attribute("content");
}
}
}
它應該轉儲內容類型加載到應用程序輸出的每個新的一頁。
update0圖像鏈接:
有一個在下劃線DOM模型的content-type屬性沒有元元,如果在圖像上,或者如果用戶點擊,您就只需加載它這樣:
QUrl url("http://www.motociclismo.es/rcs/noticias/2008/10_Oct/0610-bmw-s1000RR-02.jpg");
ui->webView->load(url);
但仍有一些dom對象被創建。對於這個特定的圖像應該看起來像下面的圖像(你可以通過frame-> toHtml獲取)。
<html>
<body style="margin: 0px;">
<img style="-webkit-user-select: none; cursor: -webkit-zoom-in; " src="http://www.motociclismo.es/rcs/noticias/2008/10_Oct/0610-bmw-s1000RR-02.jpg" width="426" height="320">
</body>
</html>
所以如果你會使用下面的代碼查詢IMG對象:
QWebElementCollection collection0 = frame->findAllElements("img");
foreach (QWebElement element, collection0)
{
QStringList attributesList = element.attributeNames();
foreach (QString attributeName, attributesList)
{
qDebug() << attributeName << ":" << element.attribute(attributeName);
}
}
你應該得到以下結果:
"style" : "-webkit-user-select: none; cursor: -webkit-zoom-in; "
"src" : "http://www.motociclismo.es/rcs/noticias/2008/10_Oct/0610-bmw-s1000RR-02.jpg"
"width" : "426"
"height" : "320"
src屬性讓你的鏈接圖片所示。我想你可以在檢測類型時相信它的擴展;或者只需下載映像並使用文件簽名檢測它的類型即可。您可以爲此編寫代碼或使用一些第三方映像庫來獲取文件類型。
希望這會有所幫助,關注
相關問題
- 1. Symbian獲取內容類型?
- 2. 獲取內容類型的子內容類型
- 3. 獲取內容類型中的其他內容類型值
- 4. 獲取MIME類型的內容方案
- 5. 獲取內容WCF響應類型
- 6. 獲取SharePoint列表內容類型
- 7. 如何從iframe獲取內容類型?
- 8. 從jQuery.Post獲取響應內容類型
- 9. 獲取文件的MimeType(內容類型)
- 10. 從QWebView使用Qt 5.5.1獲取網站的內容
- 11. PHP獲得內容類型
- 12. 獲取Div類內容html
- 13. 內容類型
- 14. Azure Logic應用程序 - 獲取Blob內容 - 設置內容類型
- 15. 獲取內容
- 16. 如何管理Qt中的QWebView內容?
- 17. PyQt4的QWebView外部資源內容
- 18. 如何獲得內容類型
- 19. 在SharePoint2010中讀取ListItemVersion內容類型
- 20. Actionscript 3讀取響應內容類型
- 21. Cloudflare內容類型
- 22. Clojure內容類型?
- 23. CORS內容類型
- 24. 內容類型javax.mail.Part
- 25. 無論響應類型如何,獲取外部頁面內容
- 26. 獲取IClassifier與自定義內容類型一起工作
- 27. 獲取IMAP中正文部分內容類型的命令
- 28. 通過DOM獲取頁面的內容類型
- 29. 如何獲取文件zend的內容類型?
- 30. 獲取內容類型的.ashx的從uploadify
這隻適用於HTML頁面?如果我點擊一些其他類型的鏈接,說一個mp3怎麼辦?如何在這種情況下獲得MIME類型? – pafcu 2010-01-15 06:48:50
請參閱我的原始回覆的更新 – 2010-01-16 04:11:07