0

textareaを使用してデータベースクエリのソースコードを表示するケースがいくつかあります。アイデアは、ユーザーがテキストエリア内のすべてのテキストを選択できるようにして、そのコードをコピーして別の場所に貼り付けることができるようにすることです。私が気にかけている2つのIEブラウザであるIE-{8,9}を除いて、すべてが順調です。

選択は、一方のテキストエリアでは正常に機能し、もう一方のテキストエリアでは機能しません。私はこれに何時間も頭を悩ませてきましたが、運がありませんでした。問題を説明するためにこれを小さなコードスニペットで再現しようとしましたが、それもうまくいきませんでした。

それで、別の方向に進むために、IE固有であり、特定のjavascriptコードを必要としないテキストエリアからのテキストの選択を無効にする方法はありますか?テキストエリアでのテキストの選択を無効にする特定のコードを書いているわけではありません。

たとえば、このテキストエリアがある場合

<textarea>Some Text</textarea>

そのテキストはIEだけでどのように選択できないのでしょうか?また、jquery、javascript、およびDOMapiを使用してプログラムでテキストを選択してみました。これは、IE-{8,9}を除くすべてのブラウザで機能します。

たとえば。

$('textarea').select();

一部のイベントリスナーが存在しないという考えを考えましたが、IE開発者ツールがすごいので、Chromeにリストされているものを比較してそれらを追跡することができませんでした。

また、IEをリセットし、コピー'ドラッグアンドドロップまたはコピーアンドペースト'が有効になっていることを確認しました。

私はそれをブラウザのバグとしてチョークで書き、自分で書きますが、一方のケースでは機能し、もう一方のケースでは機能しないため、バックグラウンドで何かが起こっているように見えます。

4

3 に答える 3

1

IDによる選択は私にとって完全にうまく機能します:

jsfiddleリンク

于 2012-10-02T22:17:25.317 に答える
1

Yoはこのようなtextareaを参照できません。IDを使用する必要があります。

<textarea id="foo">Some Text</textarea>

<script type="text/javascript">
    $('#foo').select();
</script>

</ p>

于 2012-10-02T22:20:45.363 に答える
1

実は、onselectstartメソッドをオーバーライドしていたミックスインがありました。

    if (typeof self.node.onselectstart !== 'undefined') {
        self.node.onselectstart = function() {
            return false;
        };
    }
于 2012-10-03T00:06:15.377 に答える