7

我在我的应用程序中使用 cocoa webview 进行富文本编辑。只是与 webkit 中可用的 innerHtml 和 outerHtml 方法混淆了。

谁能解释一下有什么区别

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

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

3 回答 3

17

innerHTML是 DOM 元素的一个属性,表示元素内部的 HTML,即在开始标签和结束标签之间。它已被广泛复制,但实现有所不同(可能是因为它没有发布的标准[1]),特别是在它们如何处理元素属性方面。

outerHTML类似于innerHTML,它是一个元素属性,包括开始和结束标记以及内容。它没有像 innerHTML 那样被广泛复制,因此它或多或少只是 IE。

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

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

和哪里

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>

外文本将返回 html 作为

标题你好你的名字

例如,如果我们在这种情况下以 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

我已经借助示例进行了解释,其中这四个术语的定义已在下面的答案中进行了解释。

于 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 回答