Javascript 如何将元素附加到阴影框内的窗体

Javascript 如何将元素附加到阴影框内的窗体,javascript,forms,dom,textarea,shadowbox,Javascript,Forms,Dom,Textarea,Shadowbox,我试图将textarea附加到一个存在于阴影框中的小表单中。通过按钮调用阴影框: <input type="button" value="Upload" onClick="uploadImageSB();"> 但我也不能让它起作用。我有点不知所措。。。非常感谢您的帮助:) 谢谢 暗箱的iframe id是sb player,因此您应该访问iframe内容 纯javascript方法 options: { onFinish: function() { var iframe

我试图将textarea附加到一个存在于阴影框中的小表单中。通过按钮调用阴影框:

<input type="button" value="Upload" onClick="uploadImageSB();">
但我也不能让它起作用。我有点不知所措。。。非常感谢您的帮助:)


谢谢

暗箱的iframe id是
sb player
,因此您应该访问iframe内容

纯javascript方法

options: {
  onFinish: function() {
    var iframe = document.getElementById('sb-player');
    iframe.addEventListener("load", function() {
        var ed = tinymce.activeEditor; // get editor instance
        var content = ed.save(); // get the editor content
        var ta = document.createElement('textarea');
        ta.textContent = content;
        ta.name = 'editor';
        ta.value = ta.textContent;
        var iframeContent = this.contentDocument || this.contentWindow.document;
        var form = iframeContent.getElementById('photoForm');
        form.appendChild(ta);
    },true);

  }
}

谢谢你的帮助。不幸的是,JS无法运行。它似乎不喜欢这一行
var iframeContent=iframe.contentDocument | | iframe.contentWindow.document我尝试使用其中一个,因为它们是相同的。。。没有乐趣。iframe是否与父窗口具有相同的域,如果不同,则无法访问iframe内容?你有活的例子吗?是的,域名是一样的。我的Perl CGI使用TT2(模板工具包),因此涉及到不同的包装器和内容页,但所有内容都共享同一个域。SB中的表单使用photo_wrapper.tt和名为photo.tt的内容页。SB从具有不同包装器和内容页的页面调用。。。但这不重要,对吧?不幸的是,所有东西都隐藏在一个安全的访问区域后面…如果您愿意,我将修改代码以授予您访问权限。。。让我知道。是的,如果可能的话,我会看看。
<form id="photoForm" enctype="multipart/form-data" name="photoForm" action="[% base_url %]/cgi-bin/photo.cgi" method="post" target="_parent">

    <table border="0" cellpadding="0" cellspacing="0">

        <tr><td colspan="4" style="height: 50px;"></td></tr>

        <tr>
            <td style="width: 25px;"></td>
            <td style="width: 175px;"><label>Image Name:</label></td>
            <td style="width: 275px;"><input type="text" name="image_name" size="20" maxlength="30"></td>
            <td style="width: 25px;"></td>
        </tr>

        <tr><td colspan="4" style="height: 20px;"></td></tr>

        <tr>
            <td style="width: 25px;"></td>
            <td style="width: 175px;"><label>Load Image:</label></td>
            <td style="width: 275px;"><input type="file" name="image_file" size="20"></td>
            <td style="width: 25px;"></td>
        </tr>

        <tr><td colspan="4" style="height: 20px;"></td></tr>

        <tr>
            <td style="width: 25px;"></td>
            <td style="width: 175px;"><label>Press Button to Upload:</td>
            <td style="width: 275px;"><input type="submit" value="Upload" name="upload"></td>
            <td style="width: 25px;"></td>
        </tr>

        <tr><td colspan="4" style="height: 20px;"></td></tr>

    </table>

    <input type="hidden" name="function" value="photo_upload_process">

</form>
window.parent.Shadowbox.open({})
options: {
  onFinish: function() {
    var iframe = document.getElementById('sb-player');
    iframe.addEventListener("load", function() {
        var ed = tinymce.activeEditor; // get editor instance
        var content = ed.save(); // get the editor content
        var ta = document.createElement('textarea');
        ta.textContent = content;
        ta.name = 'editor';
        ta.value = ta.textContent;
        var iframeContent = this.contentDocument || this.contentWindow.document;
        var form = iframeContent.getElementById('photoForm');
        form.appendChild(ta);
    },true);

  }
}