0

カーソル位置から定義された、ポップアップからページ上のテキストエリアに入力テキストを挿入しようとしています。

アイデアは、ユーザーがボタンをクリックするとポップアップが開き、ユーザーは入力ボックスにテキストを書き込んでからボタンをクリックして、そのテキストをカーソル位置があったテキストエリアに挿入できるというものです。

position = null;

function cursorPosition () {
 if(!window.getSelection)
 {
  position = document.selection.createRange().duplicate();
 }
 else 
 {
  position = window.getSelection();
 }
}

function insertAtCaret (text)
{
 position.text = text;
}

私が持っているポップアップウィンドウで:

function onclose(text)
{
 var newtext= text;
 opener.insertAtCaret(newtext);
 window.close();
}

クロムで動作させることはできません.IEだけです....私が得るたびに

キャッチされていない TypeError: オブジェクト [オブジェクト Window] のプロパティ 'insertAtCaret' は関数ではありません

すべてのブラウザで動作させるためのアイデアはありますか?

4

2 に答える 2

2

以下のコードは、入力ボックスからの入力を受け入れ、必要に応じてテキストエリアに追加します。入力ボックスの値をテキストエリアに追加します。

<!DOCTYPE html>
<html>
<body>

<p>Click the button to demonstrate the prompt box.</p>

<button onclick="myFunction()">Try it</button>

<textarea id="demo" cols="30" rows="5">
</textarea>

<script>
function myFunction()
{
var x;

var name=prompt("Please enter your name","Harry Potter");

if (name!=null)
  {
  x = document.getElementById("demo").value; 
  x = x + " Hello " + name + "! How are you today?"; // textarea value is appended here.
  document.getElementById("demo").value=x;
  }
}
</script>

</body>
</html>
于 2013-02-18T08:32:11.210 に答える
1

FF \ ChromeのinsertAtCaretに問題があると思います。代わりに、これを確認することをお勧めします。

于 2013-02-18T08:21:04.307 に答える