2009-06-08 10 views
1

Objective-c, Webviewchangement innerHTML du cacao DOMElement

Bonjour, Je suis en train de changer le innerHTML d'un elemnent DOM dans un DOMDocument:

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

Rien ne semble changer lorsque les lignes ci-dessus sont exécutées, est-ce la bonne façon d'éditer l'attribut innerHTML?

Merci, Mads Hartmann Jensen

Répondre

0

Pourquoi ne pas simplement utiliser la -setInnerHTML: méthode?

+0

wow, aucune idée de comment j'ai raté cette méthode, merci beaucoup –

2

J'ai découvert qu'une façon d'y parvenir était d'utiliser Javascript pour jouer avec les DOM:

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

Ce bit de code obtient l'environnement de script de le webview et exécute une fonction javascript par le nom 'replaceHeader' avec et array of argument (dans mon cas seulement une chaîne).

Cela exige que vous avez une fonction javascript avec ce nom, une partie de mon document html ressemble à ceci:

<h1 id="heading">Welcome to Cookie</h1> 
<script type="text/javascript"> 
function repleaceHeader(header) { 
    var heading = document.getElementById("heading"); 
    heading.innerHTML = header; 
}  
</script> 
+0

cela fonctionne, et est ** féroce **. En fait, je l'ai lu ailleurs ... mais COMET et JQUERY en ont fait un ... Vous n'avez qu'à pousser votre sh * t sur le DOM, la force brute. Pas de demande, pas de réponse ... juste FAIRE. –