1

Objective-c, Webview

您好,我正在尝试更改 DOMDocument 中 DOM 元素的 innerHTML:

DOMDocument *myDOM = [[storyDisplay mainFrame] DOMDocument];
DOMElement *heading = [myDOM getElementById:@"heading"]; [标题 setNodeValue:@"hejsa"];

执行上述行时似乎没有任何变化,这是编辑 innerHTML 属性的正确方法吗?

谢谢,马德斯·哈特曼·詹森

4

2 回答 2

2

我发现实现此目的的一种方法是使用 Javascript 来处理 DOM:

id *scriptObject= [storyDisplay windowScriptObject]; 
[scriptObject callWebScriptMethod:@"repleaceHeader" withArguments:[[NSArray alloc] initWithObjects:@"Whatever you want the header to be"]];

这段代码从 webview 获取脚本环境,并通过名称“replaceHeader”和参数数组(在我的例子中只有一个字符串)执行一个 javascript 函数。

这要求您有一个具有该名称的 javascript 函数,我的 html 文档的一部分如下所示:

<h1 id="heading">Welcome to Cookie</h1>
<script type="text/javascript">
function repleaceHeader(header) { 
    var heading = document.getElementById("heading"); 
    heading.innerHTML = header; 
}       
</script>
于 2009-06-09T13:25:35.327 回答
0

为什么不直接使用 -setInnerHTML: 方法?

于 2009-06-10T05:25:17.287 回答