gpt4 book ai didi

javascript - webView :shouldStartLoadWithRequest:navigationType: returns false 时取消选择高亮链接

转载 作者:行者123 更新时间:2023-11-29 20:24:15 25 4
gpt4 key购买 nike

我在 UIWebView 中显示一些带有链接的 HTML。我希望在用户确认链接确实应该打开后在 Safari 中打开链接。

打开链接工作正常,但如果用户取消,链接将保持选中状态并以蓝色突出显示。如何取消选择链接并取消突出显示?

- (BOOL)webView:(UIWebView *)aWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
self.url = request.URL;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Open the Link in Safari" message:[request.URL absoluteString] delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK"];
[alert show];
[alert release];
return false;
}
return true;
}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
[[UIApplication sharedApplication] openURL:url];
}
// Insert magic deselection code here
}

更新: [UIWebView stringByEvaluatingJavaScriptFromString:] 似乎是可行的方法。但究竟如何呢?我试过了

for (var e in document.getElementsByTag("a")) {e.blur();}

但无济于事。

最佳答案

我认为这是底层 WebKit 代码和 MobileSafari 模拟“鼠标”位置的方式的症状。

您可以尝试将这些元素的 CSS 设置为:

a.YourElementClassName:hover { text-decoration: none; }

如果我的猜测是正确的,它变成蓝色并带有下划线的原因是因为 Safari 认为鼠标光标现在位于该元素上。使用正确的 CSS 选择器组合应该可以解决这个问题。 (为了确定,可能需要添加 :visited 和 :visited:hover。)

关于javascript - webView :shouldStartLoadWithRequest:navigationType: returns false 时取消选择高亮链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com