禁用PhoneGap应用程序中的文本选择器
Disabling text selector in PhoneGap application?
我在html文档中检测到长按(触摸事件)的单词。但在长按下,我得到原生文本选择器。我试图通过CSS禁用用户选择,但它会导致抛出一个错误。
html {
-webkit-user-select: none;
}
错误:Uncaught IndexSizeError: Index or size was negative, or greater than the allowed value.
代码: <body onload="init()">
<p id="book-content">
One reason people ......at the time, since then it has made me look down on myself.
</p>
<script type="text/javascript">
var self = this;
var startTime, endTime;
var gbMove = false;
function init() {
document.getElementById("book-content").addEventListener('touchstart', self.touchstart, false);
document.getElementById("book-content").addEventListener('touchmove', self.touchmove, false);
document.getElementById("book-content").addEventListener('touchend', self.touchend, false);
}
function touchstart(e) {
startTime = new Date().getTime();
gbMove = false;
console.log('Received Event touchstart');
}
function touchmove(e) {
// gbMove = true;
console.log('Received Event touchmove');
}
function touchend(e) {
endTime = new Date().getTime();
if (!gbMove && (endTime - startTime) / 1000 > 1) {
s = window.getSelection();
var range = s.getRangeAt(0);
var node = s.anchorNode;
while (range.toString().indexOf(' ') != 0) {
range.setStart(node, (range.startOffset - 1));
}
range.setStart(node, range.startOffset + 1);
do {
range.setEnd(node, range.endOffset + 1);
} while (range.toString().indexOf(' ') == -1 && range.toString().trim() != '' && range.endOffset < node.length);
var str = range.toString().trim();
alert(str);
}
}
</script>
</body>
这个问题很容易预防。在调用getRangeAt:
之前总是检查rangeCountfunction touchend(e) {
...
if (s && s.rangeCount > 0) {
var range = s.getRangeAt(0);
...
}
请参考-同样的问题在这里解决了这篇文章。点击这里http://jsfiddle.net/stXDu/
相关文章:
- jquery日期选择器显示与值不同的文本
- 如何使用颜色选择器来更改背景中的文本
- Javascript:Unicode符号选择器(用于将数学符号添加到文本区域)
- 检查选择器在jQuery中是否包含文本(即不是媒体)
- jQuery UI日期选择器只响应第一个文本框
- 将“日期”设置为Jquery UI日期选择器输入文本框
- Javascript(jQuery)… 筛选选择器中文本中的字符
- 文本框值在从 Jquery 日期选择器中选择日期后不会发布
- 允许日期选择器使用文本输入字段
- jQuery-使用正文文本作为选择器
- 禁用JavaScript中的文本选择器
- 将日期选择器动态添加到文本框中
- Jquery日期选择器-我们如何将文本隐藏在日期选择器文本框中
- 如何放置日期范围从周选择器用于两个文本输入
- 如何在附有日期选择器的文本框中设置默认日期(以这种格式“dd/mm/yy”)
- 是否有根据特异性对 CSS 选择器文本进行排序的 JS 库
- 如何添加日期选择器当我单击文本框
- 没有p标记的Div文本选择器
- 禁用PhoneGap应用程序中的文本选择器
- 我想要一个jquery文本选择器插件,它看起来像文本选择器