7

アプリケーションのリッチ テキスト編集に cocoa webview を使用しています。Webkitで利用可能なinnerHtmlおよびouterHtmlメソッドと混同されています。

誰が違いは何ですか説明できますか

[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerHTML];

[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerText];
4

3 に答える 3

17

innerHTMLは、要素内、つまり開始タグと終了タグの間の HTML を表す DOM 要素のプロパティです。広くコピーされていますが、特に要素属性の扱い方が実装によって異なります (おそらく公開された標準 [1] がないため)。

outerHTMLは innerHTML に似ており、コンテンツだけでなく開始タグと終了タグを含む要素プロパティです。innerHTML ほど広くコピーされていないため、多かれ少なかれ IE のみのままです。

<p id="pid">welcome</p>

innerHTML of element "pid" == welcome
outerHTML of element "pid" == <p id="pid">welcome</p>

と whereAs

innerText コンテナのテキスト コンテンツ。

outerText 読み取りのためにアクセスする場合は innerText と同じです。新しい値が割り当てられると、要素全体が置き換えられます。

<p id="pid">welcome</p>

innerText of element "pid" == welcome
outerText of element "pid" == welcome
于 2013-01-10T11:15:45.297 に答える
6

html で webview にロードされたページがあるとします。

<html>
<head><title>Your Title</title></head>
<body>
<h1>Heading</h1>
<p id="para" >hi <b>Your_Name</b></p>
</body>
<html>

今。

[(DOMHTMLElement *)[[webView mainFrame] DOMDocument] documentElement] 

DOMHTMLElement "html" を返し、

outerHTMLは、完全な html を次のように返します。

<html>
<head><title>Your Title</title></head>
<body>
<h1>Heading</hi>
<p id="para">hi <b>Your_Name</b></p>
</body>
<html>

outerTextは html を次のように返します。

Your_Name さん、こんにちは

たとえば、この場合に p タグを例にとると、

outerHTML will return - <p id="para">hi <b>Your_Name</b></p>

outerText will return - hi Your_Name

innerHTML will return - hi <b>Your_Name</b>

innerText will return - hi Your_Name

これらの 4 つの用語の定義は、以下の回答で既に説明されている例を使用して説明しました。

于 2013-01-10T11:56:39.887 に答える
0

<!DOCTYPE html>
<html>
<head>
<title>innerHTML and outerHTML | Javascript Usages</title>
</head>
<body>
<div id="replace">REPLACE By inner or outer HTML</div>
<script>
userwant = "inner";
userwant = "outer";
if (userwant = "inner") {
document.querySelector("#replace").innerHTML;
// this will remove just message: 'REPLACE By inner or outer HTML' //
} else if (userwant = "outer") {
document.querySelector("#replace").outerHTML;
// this will remove all element <div> ~ </div> by the message: 'REPLACE By inner or outer HTML' //
};
</script>
</body>
</html>

于 2017-11-23T21:48:32.113 に答える