如何修改代码以从弹出窗口收集表单输入,并使用JavaScript将其插入原始页面光标位置的文本区域?
下面显示的JavaScript将表单输入插入到当前光标位置的文本区域中。textarea id=mbentry。如果所有代码都在同一页上,则此操作有效 我想在page1.php上有一个超文本链接,打开一个小的弹出窗口(例如page2.php),这样用户就可以在弹出窗口中输入文本,关闭窗口,让窗口中的输入显示在原始页面的文本区域(id=mbentry)。(注意:我目前使用GreyBox创建弹出窗口。) 我如何做到这一点?(见下面的代码)如何修改代码以从弹出窗口收集表单输入,并使用JavaScript将其插入原始页面光标位置的文本区域?,javascript,html,forms,editor,Javascript,Html,Forms,Editor,下面显示的JavaScript将表单输入插入到当前光标位置的文本区域中。textarea id=mbentry。如果所有代码都在同一页上,则此操作有效 我想在page1.php上有一个超文本链接,打开一个小的弹出窗口(例如page2.php),这样用户就可以在弹出窗口中输入文本,关闭窗口,让窗口中的输入显示在原始页面的文本区域(id=mbentry)。(注意:我目前使用GreyBox创建弹出窗口。) 我如何做到这一点?(见下面的代码) 第1页 window.onload=函数() { btn=
第1页
window.onload=函数()
{
btn=document.getElementById(“btn插入文本”);
myText=document.getElementById(“myTextArea”);
title=document.getElementById(“insTitle”);
url=document.getElementById(“保险”);
ltext=document.getElementById(“insLText”);
btn.onclick=函数()
{
insertAtCursor(myText、title.value、url.value、ltext.value);
}
}
函数insertAtCursor(myField、title、url、ltext)
{
//IE支持
if(文档选择)
{
myField.focus();
sel=document.selection.createRange();
sel.text='';
}
//Mozilla/Firefox/Netscape 7+支持
else if(myField.selectionStart | | myField.selectionStart=='0')
{
var startPos=myField.selectionStart;
var endPos=myField.selectionEnd;
myField.value=myField.value.substring(0,startPos)+''+myField.value.substring(endPos,myField.value.length);
}
其他的
{
myField.value+=myValue;
}
}
url:
标题:
链接文本:
您可以从弹出窗口调用window.parent.insertAtCursor(…)
谢谢您的帮助
我无法使用window.parent或top.window(GreyBox方法)使其工作。经过大量研究,我决定使用一个包含表单输入元素的隐藏div。单击“插入URL”按钮时,将显示div。因为div与textarea位于同一页面上,所以我不需要传递信息。再回到父窗口。我认为现在显示和隐藏带有输入字段的div就足够了。如果我想出一个更好的方法使用灰盒弹出我会分享。再次感谢
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Page 1</title>
<script type="text/javascript">
window.onload = function()
{
btn = document.getElementById("btnInsertText");
myText = document.getElementById("myTextArea");
title = document.getElementById("insTitle");
url = document.getElementById("insUrl");
ltext = document.getElementById("insLText");
btn.onclick = function()
{
insertAtCursor(myText, title.value, url.value, ltext.value);
}
}
function insertAtCursor(myField, title, url, ltext)
{
//IE support
if (document.selection)
{
myField.focus();
sel = document.selection.createRange();
sel.text = '<a href="'+url+'" title="'+title+'" target="_blank">'+ltext+'</a>';
}
//Mozilla/Firefox/Netscape 7+ support
else if (myField.selectionStart || myField.selectionStart == '0')
{
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)+ '<a href="'+url+'" title="'+title+'" target="_blank">'+ltext+'</a>' + myField.value.substring(endPos, myField.value.length);
}
else
{
myField.value += myValue;
}
}
</script>
</head>
<body>
url: <input type="text" id="insUrl" /><br />
title: <input type="text" id="insTitle" /><br />
linked text: <input type="text" id="insLText" /><br />
<input type="button" id="btnInsertText" value="Insert Link" /><br /><br />
<textarea id="myTextArea" rows="6" cols="50"></textarea>
</body>
</html>