2013-02-18 3 views
0

Я пытаюсь вставить текст ввода из всплывающего окна в текстовое поле на странице, определенное из положения курсора.Вставить текст из всплывающего окна в textarea

Идея заключается в том, что пользователь нажимает на кнопку, откроется всплывающее окно, в котором пользователь может вводить текст в поле ввода и нажмите кнопку, чтобы вставить этот текст в текстовом поле позиции курсора была.

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 .... Everytime я получаю

Uncaught TypeError: Property 'insertAtCaret' of object [object Window] is not a function

Любая идея заставить его работать во всех браузерах?

+0

Вы пробовали 'window.insertAtCaret = function (test) {position.text = text; } '? –

+0

Похоже, что это ваш объект 'opener', который вы хотите быть вашим объектом с приложенной функцией' insertAtCaret', но вот 'opener' кажется окном ... Где определено' opener'? –

+0

Вы пытаетесь принять входные данные из поля ввода и попытаться присвоить его textarea? m непонятно, что вы пытаетесь передать с помощью положения курсора ..! –

ответ

1

Я думаю, что есть проблемы с insertAtCaret в FF \ Chrome, вместо этого вы можете проверить this.

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> 
+0

Thx, но может быть несколько текстовых полей, поэтому это должно быть позиция курсора, которая определяет, в какую текстовую область должен быть добавлен текст :) :) – Graahf

+0

M не поймать идею положения курсора, не может быть какой-то другой идеальный вариант или способ сделать это ..? –

+0

Позиция курсора и где он находится, где должен отображаться текст, который записывает во всплывающем окне, когда вы закончите писать текст. Умирает, что имеет смысл? – Graahf

Смежные вопросы