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 でのテスト中に 2 番目の方法を使用して発生したと思われる 1 つのエラーは次のとおりです。

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

1 に答える 1

0

selectionStartselectionEndは、テキストエリアとテキスト入力のみのプロパティであるため、アウトです。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);
}
于 2012-09-11T00:09:14.033 に答える