Objective-c,Webview
您好, 我正在尝试在DOMDocument中更改DOM元素的innerHTML:
DOMDocument * myDOM = [[storyDisplay mainFrame] DOMDocument];
DOMElement * heading = [myDOM getElementById:@“heading”];
[标题setNodeValue:@“hejsa”];
执行上述行时似乎没有任何变化,这是编辑innerHTML属性的正确方法吗?
谢谢, Mads Hartmann Jensen
答案 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:方法?