5

ご容赦ください。ただし、これは非常に特殊な問題であり、少し背景知識が必要であり、iPad iOS 5.0 に固有の問題です。

IDE に似た HTML ページを作成することを想像してみてください。左側がエクスプローラー、右側が contenteditable フィールドを利用した編集フィールドです。

単純化された構造は次のとおりです。

<div id="left">
<ul>
    <li>hello</li>
    <li>hello</li>
    <li>hello</li>
    <li>hello</li>
    <li>hello</li>
    <li>hello</li>
</ul>
</div>
<div id="content">
    <div id="editable" contenteditable="true">
    edit here...
    </div>
</div>

左側のフィールドに何百ものこんにちはがあると想像してください。iScroll4 ライブラリを使用して、これらの要素をスクロール システムに変換します。スクロールは、タッチを使用して正常に機能します。

これが問題です。ページを更新して、テキストの編集と追加または削除を開始するとします。次に、左側をフリックして別の要素を表示します。その後、編集フィールドに触れると、テキストを追加できません。

content フィールドの上に link 要素を追加しました

<a href="javascript:touched()">touch me</a>

触れた機能は何もしませんが、リンクに触れると何らかの変更が加えられ、contenteditable フィールドを再び編集できるようになります。私の第一印象は、おそらくこれはフォーカスの問題だというものでした。そこで、さまざまな要素の焦点を追跡しました。何もない。私もキックのためにフォーカスを設定しましたが、何も起こりませんでした。

私が思ったのは、キーシーケンスが失われているのではないでしょうか? document.onkey イベントを追加すると、すべてのキーイベントがキャプチャされました。キックのために、編集可能なフィールドに明示的なフォーカスを設定するメソッド呼び出しを追加します。何もない。

contenteditable が使用できなくなる理由がわからないので、この時点で私は完全に困惑しています。フォーカスを許可するためにユーザーにリンクを再クリックさせることは、IMO ばかげた考えです。誰かがこの問題に遭遇しましたか?誰にも解決策がありますか?

ありがとう

4

1 に答える 1

0

コンテンツ編集可能な要素に触れたときにスクロールしないように、CSSポインターイベントを使用してみることができます。

*[contenteditable=true]{
  pointer-events:none;
}

これがタッチスクリーンで機能するかどうかはわかりませんが、試してみる価値はあります。

于 2012-08-01T22:27:27.893 に答える