使用Javascript在UIWebView中跳转搜索结果

使用Javascript在UIWebView中跳转搜索结果,javascript,iphone,ios,search,uiwebview,Javascript,Iphone,Ios,Search,Uiwebview,我用javascript在uiwebview中设置了一个搜索,效果非常好,但我希望能够跳转到搜索结果中找到的下一个单词。通过使用以下代码,我已成功获取视图以滚动到第一个实例: if (uiWebview_SearchResultCount == 1) { var desiredHeight = span.offsetTop - 140; window.scrollTo(0,desiredHeight); } 当用户按下应用程序中的按钮时,如何使此searchresultcount更

我用javascript在uiwebview中设置了一个搜索,效果非常好,但我希望能够跳转到搜索结果中找到的下一个单词。通过使用以下代码,我已成功获取视图以滚动到第一个实例:

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

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

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

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

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

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

是否使用适当的行调用此函数

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

这对您有用吗?

使用适当的行调用此函数

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

这对你有用吗?

我可以在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>

我可以在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>

这很像我想做的,但我似乎无法让它工作。。。如有任何进一步建议,将不胜感激。感谢您的快速响应!如果没有更多的细节,很难说什么不起作用。你的按钮动作设置正确吗?你可以发布更多的代码吗?@JakeStoeffler我复制了你的代码,但它不工作,我确信按钮操作是正确的,因为我在其中写了一些nslog,你能帮我吗?我不知道javascript,但我可以在这里发布我正在编写的javascript代码using@yucelbayram我很乐意帮忙,但让我们在聊天中这样做:这很像我想做的,但我似乎无法让它工作。。。如有任何进一步建议,将不胜感激。感谢您的快速响应!如果没有更多的细节,很难说什么不起作用。你的按钮动作设置正确吗?你可以发布更多的代码吗?@JakeStoeffler我复制了你的代码,但它不工作,我确信按钮操作是正确的,因为我在其中写了一些nslog,你能帮我吗?我不知道javascript,但我可以在这里发布我正在编写的javascript代码using@yucelbayram我很乐意提供帮助,但让我们在聊天中这样做: