【问题标题】:Jump through search results in UIWebView with Javascript使用 Javascript 在 UIWebView 中跳转搜索结果
【发布时间】:2012-04-26 09:25:20
【问题描述】:

我已经在 uiwebview 中使用 javascript 进行了搜索,效果很好,但我希望能够跳转到搜索结果中找到的下一个单词。通过使用以下代码,我成功地让视图滚动到第一个实例:

if (uiWebview_SearchResultCount == 1)
{
   var desiredHeight = span.offsetTop - 140;
   window.scrollTo(0,desiredHeight);
}

当用户按下应用程序中的按钮时,如何让这个 searchresultcount 更新到下一个找到的结果(比如 2、3、4、5 等...)?提前致谢。

【问题讨论】:

    标签: javascript iphone ios search uiwebview


    【解决方案1】:

    您是指应用中的原生按钮,例如 UIButton?在这种情况下,您可以使用stringByEvaluatingJavaScriptFromString: 在您的 UIWebView 中执行一些 JavaScript。作为按钮的处理程序,您可以执行以下操作:

    - (void)buttonPressedAction:(id)sender {
        NSString * js = @"uiWebview_SearchResultCount++;";
        [yourUIWebView stringByEvaluatingJavaScriptFromString: js];
    }
    

    【讨论】:

    • 这非常像我想要做的,但我似乎无法让它工作......任何进一步的建议将不胜感激。感谢您的快速响应!
    • 如果没有更多详细信息,很难判断什么是行不通的。您是否正确设置了按钮操作?您能否发布更多代码?
    • @JakeStoeffler 我复制了你的代码,但它不起作用,我确定按钮操作是正确的,因为我在其中写了一些 nslog,你能帮帮我吗?我不知道 javascript,但我可以在这里发布我正在使用的 javascript 代码
    • @yucelbayram 我很乐意提供帮助,但让我们在聊天中做到这一点:chat.stackoverflow.com/rooms/33397/ios-uiwebview-scrolling
    【解决方案2】:

    我可以在 webview 中用这个 javascript 做基本相同的事情:

    <script type="text/javascript">
    var max = 100;
    
    function goToNext() {
        var hash = String(document.location.hash);
        if (hash && hash.indexOf(/hl/)) {
            var newh = Number(hash.replace("#hl",""));
            (newh > max-1) ? newh = 0 : void(null);
            document.location.hash = "#hl" + String(newh-1); 
        } else {
            document.location.hash = "hl1";        
        }
    }
    
    </script>
    

    然后像这样用我的 IBAction 发送这个 JavaScript 调用:

    - (IBAction)next:(id)sender {
        [animalDesciption stringByEvaluatingJavaScriptFromString:@"goToNext()"];
    }
    

    【讨论】:

      【解决方案3】:

      用适当的行调用这个函数?

      function scrollToDesiredHeight(row) {
         var desiredHeight = span.offsetTop - 140;
         window.scrollTo(0,row * desiredHeight);
      }
      

      这对你有用吗?

      【讨论】:

        猜你喜欢
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 2011-06-16
        • 2013-11-27
        • 2016-12-05
        相关资源
        最近更新 更多