ie 360浏览器form.submit无法提交 chrome与FF可以
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ie 360浏览器form.submit无法提交 chrome与FF可以相关的知识,希望对你有一定的参考价值。
测试浏览器:
IE8,360,chrome,FF
页面代码:
<form action="$pageContext.request.contextPath/uploadFileServlet"
method="post" enctype="multipart/form-data" id="uploadForm">
<a id="upload_a" href="#"><img src="$pageContext.request.contextPath/image/upload.png"/></a>
</form>
<iframe id="hidden_iframe" name="hidden_iframe"></iframe>
js代码:
updateA.onclick = function()
var checkResult = clearTheFileInput();
if(checkResult)
var form1 = document.getElementById("uploadForm");
var iframe = document.getElementById("hidden_iframe");
form1.target = iframe.getAttribute("name");
form1.submit();
else
alert("There is no file selected.");
return false;
;
注:
表单里的input(type=file)元素是动态添加进去的。
点击“upload_a”这个a标签,提交表单。
测试结果:
IE8 与 360 都无法提交。
chrome 与 FF 可以成功的提交。
有遇到类似问题的朋友吗?
"X-UA 兼容" 内容="IE=9; IE=8; IE=7; IE=EDGE"
【中文标题】"X-UA 兼容" 内容="IE=9; IE=8; IE=7; IE=EDGE"【英文标题】:"X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" 【发布时间】:2013-01-14 16:44:14 【问题描述】:<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
这句话究竟是什么意思?
一些示例使用,
来分隔IE 的版本,而一些使用;
;哪个是正确的?
IE=9; IE=8; IE=7; IE=EDGE
的顺序很重要,我想知道。
编辑:我正在使用<!DOCTYPE html>
【问题讨论】:
我认为 IE=9 不适合X-UA-Compatible
谷歌居然推荐它:developers.google.com/web-toolkit/doc/latest/DevGuideIE9
twigstechtips.blogspot.com/2010/03/…
【参考方案1】:
如果您支持 IE,对于 Internet Explorer 8 及更高版本,此:
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7" />
强制浏览器按照特定版本的标准呈现。 IE7及以下不支持。
如果你用分号分隔,它会设置不同版本的兼容性级别。例如:
<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9" />
将 IE7 和 IE8 呈现为 IE7,但将 IE9 呈现为 IE9。它允许不同级别的向后兼容性。但是,在现实生活中,您应该只选择以下选项之一:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
这使得测试和维护变得更加容易。虽然通常更有用的版本是使用 Emulate:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
为此:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
它强制浏览器以最新版本的标准进行渲染。
欲了解更多信息,there is plenty to read about on MSDN,
【讨论】:
顺序 IE=9;即=8;即=7; IE=EDGE 有一定的重要性,我想知道 我对此的理解有些许差距。如果我的测试目标是 IE8,但我不想破坏 IE7,你会将这个元标记设置为什么?还有其他浏览器使用这个吗? IE7 不会识别这个,它首先在 IE8 中实现。上面对 IE7 的全部引用是,例如,如果您使用 IE7 作为测试的基础,并且希望所有更现代的 IE 版本都像在 IE7 标准中一样呈现。没有其他浏览器使用这个标签。 IE10 在 IE=8 (YMMV) 下可以很好地呈现旧的 Web 应用程序,但是 IE11 对 IE8 的模拟会中断。此 UA:content="IE=8; IE=11"
在 IE10 中提供浏览器模式 IE10 兼容文档模式 IE8 标准,并在 IE11 中提供文档模式边缘。 IE10 和 IE11 UA 分配的问题之一是微软删除了conditional comments。
基于该元标记,IE11 不会模拟 IE8,它会假定 IE11(如分号分隔列表中给出的那样)。该列表还将解释回退到 IE8 标准,因为 IE10 不知道 IE11 的存在,就像 IE8 无法应用 IE9 标准一样。您是否尝试过简单地使用content="IE=8"
?或者,最好是content="IE=EmulateIE8"
?【参考方案2】:
在某些情况下,可能需要将网页的显示限制为 Internet Explorer 早期版本支持的文档模式。您可以通过使用与 x-ua 兼容的标头提供页面来做到这一点。有关详细信息,请参阅指定旧文档模式。 - https://msdn.microsoft.com/library/cc288325
因此,此标签用于未来证明网页,以便使用 older / compatible 引擎以相同的方式呈现它按照创作者的意图。
确保您已检查它与您指定的 IE 版本一起正常工作。
【讨论】:
以上是关于ie 360浏览器form.submit无法提交 chrome与FF可以的主要内容,如果未能解决你的问题,请参考以下文章
上传文件时用form.submit提交的时候在低版本的IE中报拒绝访问的错误
ajaxfileUpload.js 中jQuery(form).submit(); ie后没有到去后台,其他浏览器都可以,为啥