在我网站的父页面上,我使用包含文件上传表单的 iframe(带有 display:none 提交按钮),允许用户上传个人资料图片而无需重新加载父页面。该方法适用于Chrome和FF,具有以下功能之一('NoReloadiframe'是iframe的id,'iframePicButton'是隐藏iframe的图片上传表单中的display:none提交按钮的id):
function HiddenPicButton() {
document.getElementById('NoReloadiframe').contentWindow.document.getElementById('iframePicButton').click();
}
function HiddenPicButton() {
window.frames['NoReloadiframe'].contentWindow.document.getElementById('iframePicButton').click();
}
这是 iframe 中表单的代码:
<form action="#" enctype="multipart/form-data" method="post" id="HiddenUserPicForm">
<button type="submit" name="iframepicbutton" id="iframePicButton" style="display:none">
</button>
<input type="file" name="ifrpic" id="ifrfile">
</form>
简而言之,单击父页面上的文件上传按钮会调用 HiddenPicButton(),该按钮会单击 iframe 内的隐藏按钮,并且文件会上传,而无需重新加载父页面。
但是,隐藏按钮单击在 Opera 或 IE 中都不会发生(chrome 和 FF 完全按照预期工作)。有关如何解决此问题的任何指示吗?作为备份,我将恢复到原来的页面重新加载方法,或者尝试使用 Javascript 来检测用户正在导航的浏览器(使用此处显示的方法: Browser detection in JavaScript? )并隐藏 IE 的 iframe 提交按钮和 Opera 使用 onLoad 函数。
最佳答案
尝试:
function HiddenPicButton() {
document.getElementById('NoReloadiframe').contentWindow.document.forms[0].submit();
}
关于javascript - 在 iframe 内的隐藏提交按钮上使用 click() 在 FF 和 Chrome 中有效,但在 IE 和 Opera 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21769924/