【问题标题】:How to change WebView's webpage position? OSX如何更改 WebView 网页位置?操作系统
【发布时间】:2012-10-20 01:22:30
【问题描述】:

假设我有一个加载 twitter.com 的 WebView。
这是我的 WebView 中显示的内容:

这就是我想要展示的内容:

如何在 WebView 上更改网站的默认左上角位置以显示同一网站的另一个位置?

【问题讨论】:

标签: objective-c macos cocoa webview webkit


【解决方案1】:

我用这个让它移动(你需要设置 frameLoadDelegate):

-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{

    if (frame == self.myWebview.mainFrame)
    {
        DOMDocument *mainDoc = [self.myWebview.mainFrame DOMDocument];
        DOMNodeList *list = [mainDoc getElementsByClassName:@"front-signin js-front-signin"];
        DOMNode *loginElement = [list item:0];
        NSRect myRect = loginElement.boundingBox;
        [self.myWebview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(%d,%d);", (int)myRect.origin.x, (int)myRect.origin.y]];
    }
}

"front-signin js-front-signin" 是 www.twitter.com 的源 html 中使用的类的名称。

因此,依赖随时可能发生变化的东西很容易失败。

在这种情况下,标题也不会移动。所以要么考虑它并显示它,要么将你的视图向上移动到这个标题的大小并隐藏它。

您需要调整 scrollTo 调用以使其在您的视图中居中。

而且您可能需要考虑在视图加载后将其淡化,因为滚动有点生涩,而且不太像 osx。

但除此之外,它还可以工作 ;-)

【讨论】:

    【解决方案2】:

    您可以在 UIWebView 中执行 javascript:

    [webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset=200;"];
    

    这应该将窗口向下滚动 200 像素。

    【讨论】:

      【解决方案3】:

      您可以在 OS X 上使用以下内容:

      [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(%f, %f)", xPos, yPos]];

      【讨论】:

        【解决方案4】:

        您还可以使用 webview 的 scrollView contentOffset。

        UIWebView * webView = [[UIwebView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
        [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.twitter.com"]]];
        [webView.scrollView setContentOffset:CGPointMake(50, 60)];
        [webView release];
        

        【讨论】:

        • 很抱歉,我正在将 WebView 用于 OSX 应用程序,并且 webView 上没有“scrollView”。
        猜你喜欢
        • 2017-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-29
        • 1970-01-01
        • 2015-08-12
        • 2020-01-07
        • 1970-01-01
        相关资源
        最近更新 更多