InnerHTML mudança de DOMElement cacau
-
12-09-2019 - |
Pergunta
Objective-C, Webview
Olá, Estou tentando mudar o innerHTML de um elemnent DOM em um DOMDocument:
DOMDocument * MYDOM = [[storyDisplay mainFrame] DOMDocument];
DOMElement * título = [MYDOM getElementById: @ "título"];
[Dirigindo setNodeValue: @ "hejsa"];
Nada parece mudar quando as linhas acima são executadas, é este o caminho certo para editar o atributo innerHTML?
Obrigado, Mads Hartmann Jensen
Solução
Por que não usar o -setInnerHTML: método
Outras dicas
Eu descobri que uma maneira de conseguir isso era usar o Javascript para brincar com o DOM:
id *scriptObject= [storyDisplay windowScriptObject];
[scriptObject callWebScriptMethod:@"repleaceHeader" withArguments:[[NSArray alloc] initWithObjects:@"Whatever you want the header to be"]];
Este pedaço de código obtém o ambiente de script do webview e executa uma função javascript com o nome 'replaceHeader' com e variedade de argumento (no meu caso apenas uma string).
Esta exigem que você tenha uma função javascript com esse nome, parte do meu HTML aparência de documentos como este:
<h1 id="heading">Welcome to Cookie</h1>
<script type="text/javascript">
function repleaceHeader(header) {
var heading = document.getElementById("heading");
heading.innerHTML = header;
}
</script>