如何修改代码以从弹出窗口收集表单输入,并使用JavaScript将其插入原始页面光标位置的文本区域?

如何修改代码以从弹出窗口收集表单输入,并使用JavaScript将其插入原始页面光标位置的文本区域?,javascript,html,forms,editor,Javascript,Html,Forms,Editor,下面显示的JavaScript将表单输入插入到当前光标位置的文本区域中。textarea id=mbentry。如果所有代码都在同一页上,则此操作有效 我想在page1.php上有一个超文本链接,打开一个小的弹出窗口(例如page2.php),这样用户就可以在弹出窗口中输入文本,关闭窗口,让窗口中的输入显示在原始页面的文本区域(id=mbentry)。(注意:我目前使用GreyBox创建弹出窗口。) 我如何做到这一点?(见下面的代码) 第1页 window.onload=函数() { btn=

下面显示的JavaScript将表单输入插入到当前光标位置的文本区域中。textarea id=mbentry。如果所有代码都在同一页上,则此操作有效

我想在page1.php上有一个超文本链接,打开一个小的弹出窗口(例如page2.php),这样用户就可以在弹出窗口中输入文本,关闭窗口,让窗口中的输入显示在原始页面的文本区域(id=mbentry)。(注意:我目前使用GreyBox创建弹出窗口。)

我如何做到这一点?(见下面的代码)


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