1

我正在开发一个iframe文件上传器(所以我的文件上传器似乎是 ajax)。我正在尝试获取页面上的表单并将其插入到iframe. 然后我将在iframe. 但是,它不起作用。这是我的代码:

jQuery:

function submitFile() {
    $(document).ready(function() {
        if ($('[name=files]').val() != "")
        {
            var fileForm = $('#attachFile').html();
            $('#emptyDiv').html('<iframe name="hiddenIframe" id="hiddenIFrame">'+fileForm+'</iframe>');
        }
    });
}

HTML:

<body>
    <div id="emptyDiv"></div>
    <div id="attachFile">
        <form action="my_file.php" method="post" enctype="multipart/form-data" id="uploadFile">
            <input type="file" name="files" id="files">
            <input id="fileUploadButton" type="submit" name="upload" value="Upload File" onclick="submitFile()">
        </form>
    </div>
</body>

这显然不是一个完整的解决方案,但我注意到在提交表单后我确实设法将iframe插入到<div id="emptyDiv">元素中。但是,里面iframe是以下代码:

#document
<html>
    <head></head>
    <body></body>
</html>

但我希望在里面看到的iframe是位于表单中的 html 内容<div id="attachFile">。我错过了什么?

4

2 回答 2

2

您不要尝试将表单复制到隐藏的 iframe,而是将表单提交到隐藏的 iframe。将target表单的属性(或属性)设置为 iframe 的名称。

var fileForm = $('#attachFile form').prop('target', 'hiddenIframe');
$('#emptyDiv').html('<iframe name="hiddenIframe" id="hiddenIFrame"></iframe>');

或者

<form action="my_file.php" method="post" enctype="multipart/form-data" id="uploadFile" target="hiddenIframe">
    <input type="file" name="files" id="files">
    <input id="fileUploadButton" type="submit" name="upload" value="Upload File" onclick="submitFile()">
</form>
于 2013-05-05T03:17:39.213 回答
1

尝试将您的 HTML 转换为单独的页面,并src使用iframe.

于 2013-05-05T03:17:49.433 回答