【发布时间】:2013-02-18 08:14:42
【问题描述】:
我正在尝试将输入文本从弹出窗口插入到页面上的文本区域,从光标位置定义。
这个想法是,用户单击一个按钮,一个弹出窗口打开,用户可以在输入框中输入文本,然后单击一个按钮将该文本插入到光标位置所在的文本区域。
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();
}
不能让它在 chrome 中工作,只有 IE....每次我得到一个
未捕获的类型错误:对象 [对象窗口] 的属性“insertAtCaret” 不是函数
有什么想法让它在所有浏览器中都能正常工作吗?
【问题讨论】:
-
你试过
window.insertAtCaret = function(test) { position.text = text; }吗? -
看来它来自你的对象
opener,你想成为你的对象并附加了函数insertAtCaret,但是这里opener似乎是窗口......在哪里定义opener? -
您是否尝试从输入框获取输入并尝试将其分配给 textarea?我不清楚你想用光标位置传达什么......!
-
是的,我正在尝试标记来自输入框的输入并将其分配给光标所在的最后一个文本区域 - 光标位置用于此目的。
标签: javascript