2

HTML ドキュメントのすべての要素のスタイルを、1 つを除いて「display: none;」に設定したいと考えています。HTML ソース ファイルを編集できません。私は Qt Webkit を使用してこれを実行しています。これまでのコードは次のとおりです。

QWebFrame *frame = webView->page()->mainFrame();

QWebElement document = frame->documentElement();
foreach (QWebElement element, document.findFirst("body").findAll("*"))
    element.setAttribute("style", "display: none");


QWebElement canvas = document.findFirst("canvas");
canvas.setAttribute("style", "display: inline");

ただし、これにより、キャンバス要素を含むすべてが非表示になります。

どうすればこれを行うことができますか?

4

2 に答える 2

1

あなたは、すべての<div>要素の可視性を操作したいと言いました。それらをすべて取得するには、次のクエリをforeachブロックに置き換えます。

document.findAll(QLatin1String("div")

他の回答で与えられた提案も正しいです-の親要素<canvas>自体がに設定されていないことを確認する必要がありdisplay: noneます。

于 2013-04-17T16:05:17.547 に答える
1

これはおそらく、'display:none;' スタイルを持つ 'canvas' の祖先によるものです。したがって、どちらにも含まれているものは表示されません。私の推測では、次のように親をループできます。

QWebElement parent = canvas.parent();
do{
    parent.setAttribute("style", "display: inline");
}while(parent!=null)

ただし、構文が少しずれている可能性があります。

于 2013-04-17T12:34:35.927 に答える