objective-c如何将名称得到链接?

标签: HTML Objective-C
发布时间: 2017/3/27 1:58:24
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我在写 objective-C 。 我有 WebView 和本地文件 index.html 已

<a href='http://www.google.com' name="666">

怎样才能 name 属性?

谢谢你 !

解决方法 1:

它取决于当的你需要获取的名称。如果您需要的名称,当有人点击链接时,您可以设置一些 JavaScript 运行时单击链接 (onclick 处理程序)。如果你只是有的 html 字符串,可以使用正则表达式解析文档并拔出所有的名称属性。好的正则表达式库 Objective-CRegexKit (或 RegexKitLite 在同一页上的)。

解析出的链接的名称属性的正则表达式会看起来像这样︰

/<a[^>]+?name="?([^" >]*)"?>/i

编辑︰获取从链接的名称,当有人点击它的 javascript 代码将如下所示︰

function getNameAttribute(element) {
    alert(element.name); //Or do something else with the name, `element.name` contains the value of the name attribute.
}

这就是从 onclick 处理程序,类似︰

<a href="http://www.google.com/" name="anElementName" onclick="getNameAttribute(this)">My Link</a>

如果您需要获取名称回你 Objective-C 代码,你可以写你的 onclick 函数将名称属性追加到某个 hash 标签时,窗体中的 url,然后捕获请求解析在你 UIWebView 委托 -webView:shouldStartLoadWithRequest:navigationType: 方法。这将在这样的事情︰

function getNameAttribute(element) {
    element.href += '#'+element.name;
}

//Then in your delegate's .m file

- (BOOL)webView:(UIWebView *)webView
        shouldStartLoadWithRequest:(NSURLRequest *)request
        navigationType:(UIWebViewNavigationType)navigationType {

    NSArray *urlParts = [[request URL] componentsSeparatedByString:@"#"];
    NSString *url = [urlParts objectAtIndex:0];
    NSString *name = [urlParts lastObject];
    if([url isEqualToString:@"http://www.google.com/"]){
        //Do something with `name`
    }

    return FALSE; //Or TRUE if you want to follow the link
}
官方微信
官方QQ群
31647020