以编程方式选择文本Mobile Safari

时间:2012-09-10 23:48:06

标签: javascript iphone mobile safari mobile-safari

我在网站上选择文字时遇到问题。我有一个div块,并希望在iPhone / Android上触摸div块时选择里面的所有文本。到目前为止,我已经在Selecting text in mobile Safari on iPhone

尝试了该方法

像这样:

<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

1 个答案:

答案 0 :(得分:0)

selectionStartselectionEnd只是textareas和文本输入的属性,所以它们已经出局了。 Mobile 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);
}