我有一个包含多个段落的长HTML文档。当我尝试在iOS上的Mobile Safari或UIWebView中选择文本时,会发生以下情况:
当我将CSS contentEditable
属性设置为true
时,我保留了字符级精度,但键盘也显示出来,这当然是我不想要的。
无论我选择的文字有多长,有没有办法保留字符级选择精度?
答案 0 :(得分:3)
iOS 8的WKWebView
可能能够解决这个问题。 WKWebViewConfiguration
有一个名为selectionGranularity
的属性。评论内容如下:
用户可以交互式选择的粒度级别 Web视图中的内容。可能的值描述于 WKSelectionGranularity。默认值为 WKSelectionGranularityDynamic。
两个可能值中的一个是WKSelectionGranularityCharacter
。评论说:
选择端点可以放置在任何字符边界。
我还没试过,但听起来很有希望!
2015年7月6日更新:看起来并不那么容易:Text Selection in WKWebView: WKSelectionGranularityCharacter
更新7/10/15 :当您仔细研究iOS Kindle应用时,您会发现他们已经在JavaScript中重新实现了“本机”文本选择,因为它们无法生成原生文本选择按照他们想要的方式行事。我很确定他们在决定重新实施之前必须尝试其他所有方法。
答案 1 :(得分:0)
我遇到同样的问题,
我用一行CSS来解决这个问题:
public CarInterface issueCar(DrivingLicence aLicence, CarType typeOfCar) {
final boolean isLicenceFull = drivingLicence.getLicenceStatus();
final Optional<CarInterface> optionalCar = availableCars.stream()
.filter(car -> typeOfCar == car.getType())
.findAny();
final CarInterface car = optionalCar.orElseThrow(() -> new RuntimeException("All cars of type " + typeOfCar + " have been rented"));
if(aLicence.getLicenceStatus() ==true){
if(!rentals.containsKey(aLicence)){
}else if(typeOfCar.equals(optionalCar)){
}
}
}
两者都适用于Safari和WebView。
答案 2 :(得分:-2)
由于您还要选择文本标题,浏览器会将其识别为完整文本并选择整个段落。 顺便说一句,如果没有看到HTML源代码,就无法帮助您!
答案 3 :(得分:-3)
嘿,您可以使用CSS属性不让用户选择文本。 您可以使用:
html
{
user-select:none;
}