改变cocoa DOMElement的innerHTML

时间:2009-06-08 17:49:25

标签: objective-c cocoa webview

Objective-c,Webview

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

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

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

谢谢, Mads Hartmann Jensen

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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