0

iframe 内にテキストエリアがあります。JavaScriptのonclickイベントでテキストエリアのテキストを選択したいです。

例:

I have an iframe.

The inner content of the iframe is this:
<textarea id="textarea" disabled onclick="selectthis()">
"content of textarea"
</textarea>

ユーザーがコピーできるようにテキストを選択したい:

I put this at the head of my page:

function selectthis() {
   document.getElementById('textarea').select();
}

しかし、テキストエリアをクリックすると、選択されません。

4

3 に答える 3

1

あなたはこれを必要とします:

document.getElementById('textarea').select();

Javascript では関数は大文字と小文字が区別されるため、すべてを適切に大文字にするようにしてください (私egetElementById.

于 2012-05-20T20:46:32.037 に答える
1

getElementById間違って          入力しました。


に変更getelementByIdgetElementByIdます。JavaScript では大文字と小文字が区別されます。

ここに画像の説明を入力 http://jsfiddle.net/DerekL/ArGhg/

プラス、

<textarea id="textarea" onclick="selectthis">  <!--Nope-->
<textarea id="textarea" onclick="selectthis();">  <!--Yup!-->

アップデート

あなたがそこで何をしたかわかる。無効 な 内のテキストは選択できません<textarea>http://jsfiddle.net/DerekL/ArGhg/2/
を参照してください

Francisc のコメントによると、使用readonlyすると問題が解決します。http://jsfiddle.net/DerekL/ArGhg/3/
を参照してください

于 2012-05-20T20:47:14.347 に答える
0

as idselectthisを持つ要素が見つからないため、この関数はおそらく例外を生成します。textarea問題は、あなたが使用していることですdocument.getElementById(タイプミスを修正しました)が、テキストエリアはに属していませんdocument。通常は次のような方法で、iframe 独自のドキュメント オブジェクトにアクセスする必要があります。

var iframe = document.getElementsByTagName("iframe")[0];
var ifrDoc = iframe.contentDocument;
var textarea = ifrDoc.getElementById("textarea");
textarea.select();

注: IE8 では doctype を指定する必要がありますが、以前のバージョンではiframe.contentWindow.document代わりに使用できます。

于 2012-05-20T20:47:16.050 に答える