簡體   English   中英

如何使用注入的JavaScript將UIWebView滾動到某一點

[英]How to use injected JavaScript to scroll UIWebView to a point

我整天都在閱讀這篇文章,根本無法解決問題。 我正在嘗試加載一個網頁,並在完成加載后自動將其滾動到預先確定的點。 我一直在閱讀教程,如http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebview ,但仍然沒有運氣。

這是我的.m問題出現的地方。 我很絕望請幫忙! 另外,它告訴我我的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:

確保將視圖控制器設置為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)];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM