【问题标题】:How do I focus on a specific <div> tag while displaying webpages in UIWebView在 UIWebView 中显示网页时如何关注特定的 <div> 标签
【发布时间】:2014-02-17 20:52:15
【问题描述】:

我有一个 HTML 页面,其中有一个 div 标签,

<htmL>
   <head/>
      <body>
         <div id ="Required">
            <table>
               <tr>
                <td/>
               </tr>
            </table>
         </div>
      </body>
</html>

在使用 UIWebView 显示上述网站时,我需要在网页加载后立即关注 div 标签。所以基本上,只要在 UIWebView 下加载 url,用户就应该在他的 iPhone 上看到表格(在 div 标签下)。

到目前为止我尝试了什么?

-(void) ViewDidLoad()
{
   self.webView.delegate = self;
   NSURL *url = [NSURL URLWithString:@"www.nameofthewebsite.com"];
   NSURLRequest *req = [NSURLRequest requestWithURL:url];
   [self.webView loadRequest:request];

}

-(void) webViewDidFinishLoad:(UiWebView*) webView{
   self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('Required').focus()];

}

当页面加载时,我仍然没有看到我的 div 标签被聚焦。我还尝试使用加载 html 字符串函数。我错过了什么吗?

【问题讨论】:

  • “焦点”是什么意思?您通常无法聚焦 DIV 元素,因为它不需要用户输入。
  • 焦点我的意思是,iphone屏幕的区域应该被表格覆盖,因为表格包含对用户最重要的信息。其余元素可以通过移动页面隐藏和查看。希望这个解释有所帮助。有没有一种方法可以让我聚焦这些只提供信息而不接受用户输入的静态元素?

标签: ios objective-c uiwebview uiwebviewdelegate


【解决方案1】:

如果您试图让网络视图自动滚动以使您的&lt;div&gt; 位于前面和中间,那么focus() 不是适合该工作的工具。 focus() 告诉浏览器为用户输入准备一个元素,并且(通常)仅用于&lt;input&gt; 元素(及其表亲,如&lt;textarea&gt;&lt;select&gt;

您要查找的函数是scrollIntoView()

【讨论】:

  • 我在 stackoverflow Scroll to text on UIWebView 上找到的示例指的是一个不再存在的网站。此外,它指的是修改我无权访问的原始 html 文件。有什么想法吗?
  • scrollIntoView() 不适合您吗?您将使用它而不是 .focus()。您不需要修改 HTML 文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多