javascript - 在 iframe 内的隐藏提交按钮上使用 click() 在 FF 和 Chrome 中有效,但在 IE 和 Opera 中无效

标签 javascript forms iframe

在我网站的父页面上,我使用包含文件上传表单的 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/

相关文章:

javascript - 如何仅使用客户端语言从本地文件加载字符串?

javascript - 取决于内容的条件 css

javascript - Knex.js 和 MySQL : Casting Integer into Boolean for bulk select

javascript - 单击时显示绑定(bind)在输入框下方的复选框

jquery - 存储动态表单和使用 json 输入的数据

php - 什么 PHP/Shell 框架可用于访问 HTTP-POST/-GET 表单(curl 除外)?

javascript - 我正在加载图像而不是 iframe 并使用 jquery 在同一位置播放视频的图像上单击。适用于桌面设备但不适用于移动设备?

javascript - "Unsafe JavaScript attempt to access frame with URL"错误导致 JavaScript 翻转失败

Javascript:如何停止多个 jQuery ajax 错误处理程序?

html - 在 youtube iframe 上覆盖不透明的 div