如何使用注入的JavaScript滚动UIWebView到一个点



我一整天都在研究这个问题,就是无法解决这个问题。我试图加载一个网页,并完成加载后自动滚动到一个预定的点。我一直在阅读这样的教程http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebview,但仍然没有运气。

这是我的电脑出现问题的地方。我走投无路了,请帮帮我!此外,它告诉我,我的webViewDidFinishLoad正在覆盖实例变量,但这应该不是一个问题,我相信

- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *urlAddress = @"http://www.twitter.com/richrines";
    NSURL *url = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];
    // Do any additional setup after loading the view from its nib.
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
     [webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"  
     "script.type = 'text/javascript';"  
     "script.text = "function myFunction() { "  
     "window.scrollTo(100,100)"
     "}";"  
     "document.getElementsByTagName('head')[0].appendChild(script);"];  
     [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];
}

你为什么用这么复杂的方式做这件事?这应该是你所需要的:

[webView stringByEvaluatingJavaScriptFromString:@"window.scrollTo(100,100)"];

这对我来说是完美的,但不包括javascript:

确保你将你的web视图所在的视图控制器设置为UIWebViewDelegate,并在头文件(.h)的@interface中声明。

[yourWebView setDelegate:self];


然后,在webViewDidFinishLoad:方法中,插入以下代码:

[yourWebView.scrollView scrollRectToVisible:CGRectMake(0, yourWebView.bounds.size.height + 100, 1, 1) animated:NO];           

你不能改变webView的scrollView属性的偏移量吗?

[webView.scrollView setContentOffset:CGPointMake(100, 100)];

最新更新