6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)
  • Q:
    Bijdrager
    Daan

    getElementsByName in UIWebView werkt niet

    In de method

    <br />
    -(void)webViewDidFinishLoad:(UIWebView *)webView1;<br />
     

    Heb ik mijn code staan. Mijn code is:

    <br />
    // Werkt niet</p>
    <p>NSLog(@"String: %@", [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('user')[0].value='139576';"]);</p>
    <p>// Werkt het<br />
    NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];<br />
    NSLog(@"Title: %@", title);<br />
     

    De titel werkt wel. Iemand een idee? Op mijn iMac in Safari werkt ook niet.

    De code van de site is

    <br />
    <form method="post" action="/infoweb/index.php"><br />
    <input type="hidden" value="d8dd44e3d50871298f1ee4f26357508e" name="csrf"><br />
    <table><br />
    <tbody><br />
    <tr><br />
    <td> Gebruikersnaam: </td><br />
    <td><br />
    <input class="mooi" type="text" onkeydown="this.style.color='#000000';" onfocus="if (this.value =='username') this.value=''; this.style.color='#000000';" value="username" name="user" style="color: rgb(0, 0, 0);"><br />
    </td><br />
    </tr><br />
    <tr><br />
    <tr><br />
    </tbody><br />
    </table><br />
    </form><br />
     

    Iemand enig idee?
    Alvast bedankt

    Inactief
    Anoniem

    Wat werkt niet? Is de string helemaal leeg of iets anders? Wat verwacht je te zien? Is het ‘user’ of ‘username’ ?

    Edit: maak ook eens een NSString aan voor het eerste deel, misschien staat er daar een syntaxfout in?

    Bijdrager
    Daan

    Hij zou de output 139576 moeten geven maar op mijn iMac geeft een undefined aan

    Inactief
    Anoniem

    Probeer eens:

    "139576"

    ipv

    '139576'

    Verder gaat mijn JS kennis niet.:smile:

    Bijdrager
    Daan
    <br />
    Error<br />
    line: 2<br />
    message: "'undefined' is not an object (evaluating 'document.getElementsByName("user")[0].value="139576"')"<br />
    sourceId: 4374631856<br />
    __proto__: Error<br />
    constructor: function TypeError() {<br />
    message: "TypeError"<br />
    name: "TypeError"<br />
    toString: function toString() {<br />
    length: 0<br />
    name: "toString"<br />
    __proto__: function () {<br />
    apply: function apply() {<br />
    call: function call() {<br />
    constructor: function Function() {<br />
    length: 0<br />
    name: ""<br />
    toString: function toString() {<br />
    __proto__: Object<br />
    __proto__: Error<br />
    constructor: function Error() {<br />
    message: ""<br />
    name: "Error"<br />
    toString: function toString() {<br />
    __proto__: Object<br />
     

    Dit is de error die ik krijg

    Bijdrager
    bitsflew

    webViewDidFinishLoad kan afhankelijk van de HTML meerdere malen worden aangeroepen!

    Probeer het volgende eens:

    <br />
    // webViewLoads is een integer class variable van de delegate<br />
    - (void)webViewDidStartLoad:(UIWebView *)webView {<br />
      webViewLoads++;<br />
    }<br />
    - (void)webViewDidFinishLoad:(UIWebView *)webView {<br />
      webViewLoads--;<br />
      if (webViewLoads == 0) {<br />
    	// Plaats hier je JavaScript code<br />
      }<br />
    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {<br />
     webViewLoads--;<br />
    }<br />
     
6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.