javascript - 将弹出窗口中的文本插入文本区域

标签 javascript

我正在尝试将输入文本从弹出窗口插入到页面上的文本区域(从光标位置定义)。

其想法是,用户单击按钮,将打开一个弹出窗口,用户可以在输入框中写入文本,然后单击按钮将该文本插入到光标所在位置的文本区域。

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 中运行......每次我都会收到

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

有什么办法让它在所有浏览器中工作吗?

最佳答案

下面的代码接受来自输入框的输入,并根据需要将其添加到文本区域。它将输入框值附加到文本区域。

<!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>

关于javascript - 将弹出窗口中的文本插入文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14931934/

相关文章:

javascript - 使用 JS 找到屏幕高度,然后通过 CSS 将其应用到 div 类

javascript - AngularJS:我可以使用在另一个模块中定义的过滤器吗?

javascript - 物化CSS : SideNav not working properly after update

javascript - 根据屏幕大小调整(增加/减少)字符串长度

javascript - 如何检测是否在 Google Maps API 自动完成列表中选择了项目?

javascript - 如何修复错误无法读取未定义的属性 'trim`

javascript - 我的网格制作器中的错误

JavaScript 根据第一个事件创建第二个事件

javascript - 将递增的类与不同循环中递增的 id 进行匹配 [jQuery/Wordpress]

javascript - 使用 D3 创建带有线条的交互式图表(缩放/平移)