【问题标题】:Objective C running Javascript to AutoFill Webpages. Need help pleaseObjective C 运行 Javascript 来自动填充网页。需要帮助请
【发布时间】:2012-03-15 04:16:03
【问题描述】:

我已经为此强调了几个小时,但我无法让它发挥作用。我没有 javascript 方面的经验,并且一直在论坛和其他网站上搜索,但我似乎无法找到有效的解决方案。

我正在尝试使用 xCode 中的 webView 填写表单

网站http://www.eatwellguide.org/mobile/ 是表单所在的位置。

网站有这个论坛

             <form name="data[Search][form]" METHOD="post" ACTION="/search/advanced/find" ID="frmAS" >
                 <ul>
                   <li><input type="hidden" name="device" id="device" value="mobile" title="mobile">
                      <input type="hidden" name="iframe" id="iframe" value="11" title="mobile" > Keyword: </li>
                   <li><input type="text" name="data[Search][keyword]" id="SearchKeyword" title="search by keywords" /> 
                      <input ID="SearchSubmit" class="BTNsend"  type="submit" value="Find" name="data[Search][submit]"/></li>
                   <li>Zip / Postal  Code:</li>
                   <li><input type="text" title="Zip search" value="" name="data[Search][zip_code]"  />   <input ID="SearchSubmit" class="BTNsend" type="submit" value="Find" name="data[Search][submit]"/> </li>
                   <li><select name="data[Search][distance]" style="font-size:120%; ">
                         <option value="1">1</option>
                         <option value="5"  selected="">5</option>
                         <option value="10">10</option>
                         <optionvalue="20">20</option>
                         <option value="50">50</option>
                         <option value="100">100</option>
                         <option value="200">200</option>
                        </select> <input type="radio" ID="SearchDistanceUnit" value="Mi" checked="" name="data[Search][distance_unit]" class="BTNradio"/> Mi

我正在尝试修改标题为“zip search”的文本框并提交表单,但我的代码根本不起作用。它甚至不会填写文本框

    NSString* javaScriptString = @"document.getElementById('data[Search][zip_code]').elements.value='22911';";



[self.webView stringByEvaluatingJavaScriptFromString: javaScriptString];

它什么也不做。我也尝试过 GetElementsByName 和这两者的许多其他变体。

【问题讨论】:

    标签: javascript objective-c xcode uiwebview document


    【解决方案1】:

    浏览器支持将 JavaScript 直接输入到 URL 栏中。因此,如果您加载链接到的页面,请输入以下 URL:

    javascript:alert(document.getElementsByName('data[Search][zip_code]'))
    

    您将收到一条警报消息,显示已找到的内容。在这种情况下,我已经接受了您的 getElementByName 并进行了更正 - 元素应该是复数并且它返回一个数组。

    建立:

    javascript:alert(document.getElementsByName('data[Search][zip_code]')[0])
    

    求值以显示输入元素。那么:

    javascript:alert(document.getElementsByName('data[Search][zip_code]')[0].value)
    

    显示当前值,并且:

    javascript:document.getElementsByName('data[Search][zip_code]')[0].value = '22911'
    

    填充框。这就是你想要的字符串(减去javascript:)。

    如果您在句法上出现了错误,至少在 Mobile Safari 中,您的陈述将被忽略。如果您最终尝试获取不存在的内容,您会在警报中收到 NULL 消息。

    【讨论】:

    • 汤米你摇滚!谢谢您的帮助。如何提交表单?
    猜你喜欢
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多