0

Webアプリケーションで、jqueryを使用してダイアログを起動したいと思います。ダイアログは、ユーザーがクリップボードにコピーする文字列を提供するのに役立ちます(Ctrl-C)。簡単にするために、textareaの値として指定されている文字列を選択(強調表示)したいと思います。さらに、クリックハンドラーをコンテンツの選択にもバインドして、ユーザーがクリックしたときにコンテンツの選択を解除しないようにします。

ただし、Firefox(FF 13.0.1 / Linux)を使用すると、これは機能しません。ダイアログが起動し、textareaがコンテンツを受け入れます。バインディングは正常に機能します。明示的にクリックした後を除いて、コンテンツの選択だけでは機能しません。

そこで、簡単なユースケースを作成しました:http: //jsfiddle.net/4CK7Y/2/

このコードが含まれています:

HTML:

<div>
    <fieldset>
        <textarea id="payload"></textarea>
    </fieldset>
</div>

JS / JQuery:

$('#payload').val("some text");
$('#payload').select();
$('#payload').click(function(){this.select();});

これがほとんどのブラウザ(Konqueror、Rekonq、Opera)で正常に機能するのを見て、私は非常に驚きました。ただし、Firefoxでは、これはフレッシュリロード時にのみ機能します。[実行]をクリックすると、問題が発生します。コードは再実行されますが、クリックしないとテキストエリアのコンテンツが選択されません。

これの原因は何ですか?それについて私は何ができますか?

4

1 に答える 1

0

テキストエリアは、ページの読み込み時に自動的にフォーカスを取得しないためです。$(document).ready()の下の textarea にfocus()イベントをアタッチします。

于 2012-06-26T11:57:22.453 に答える