3

我无法在我的网站上选择文本。我有一个 div 块,并希望在 iPhone/Android 上触摸 div 块时选择里面的所有文本。到目前为止,我已经尝试过以下方法:在 iPhone 上的移动 Safari 中选择文本

像这样:

<div ontouchstart="this.selectionStart=0; this.selectionEnd=this.value.length;">

我还尝试根据来自不同来源的建议在我的 JS 文件中创建一个函数来执行此操作:

HTML

<div ontouchstart="touchStart(event, this);>

JS

function touchStart(event, obj) {
  var range = window.getSelection();
  var sel = window.getSelection()

  range.setStart(obj, 0);
  range.setEnd(obj, obj.innerHTML.length);
  sel.removeAllRanges();
  sel.addRange(range);
  //range.execCommand("BackColor", false, colour);
}

到目前为止,这两种方法似乎都不起作用。在 iPhone 上的 Safari 上进行测试时,我似乎使用第二种方法遇到的一个错误是:

JavaScript: Error undefined TypeError: 'undefined' is not an object
4

1 回答 1

0

selectionStart并且selectionEnd只是 textareas 和文本输入的属性,所以它们已经出局了。移动 Safari 与所有其他主流浏览器具有相同的选择 API,但您只能影响已显示的可见选择。

HTML:

<div ontouchstart="selectElementContents(this);">

JS:

function selectElementContents(el) {
    var sel = window.getSelection();
    var range = document.createRange();
    range.selectNodeContents(el);
    sel.removeAllRanges();
    sel.addRange(range);
}
于 2012-09-11T00:09:14.033 回答