Javascript 为什么HTML页面插入到带有document.write的弹出窗口中需要刷新才能加载到IE 7/8中?
我有一个奇怪的场景。。。经过3个多小时的努力,我决定问一个问题 我正在打开一个带有以下代码的Javascript 为什么HTML页面插入到带有document.write的弹出窗口中需要刷新才能加载到IE 7/8中?,javascript,internet-explorer-8,internet-explorer-7,window.open,document.write,Javascript,Internet Explorer 8,Internet Explorer 7,Window.open,Document.write,我有一个奇怪的场景。。。经过3个多小时的努力,我决定问一个问题 我正在打开一个带有以下代码的弹出窗口: var mapWin = window.open('', '', params); mapWin.document.open(); mapWin.document.write(map); mapWin.document.close(); 其中,map使用Esri并包含通过AJAX调用获得的页面的完整HTML代码。此页面的代码包括和标记 一切在Firefox和Google Chrome上都能
弹出窗口
:
var mapWin = window.open('', '', params);
mapWin.document.open();
mapWin.document.write(map);
mapWin.document.close();
其中,map
使用Esri并包含通过AJAX
调用获得的页面的完整HTML
代码。此页面的代码包括
和
标记
一切在Firefox和Google Chrome上都能正常工作。:)问题在于挑剔的IE 7/8。当使用IE 11开发工具进行测试时,文档模式设置为IE 7
或IE 8
,document.write
将内容放入新窗口,但它似乎没有执行/运行map
中包含的部分
,因此,map不会呈现在屏幕上
奇怪的是,如果我右键单击弹出窗口并选择刷新,那么页面将按预期呈现,我可以看到地图
注意:所有脚本都位于localhost
,即我自己的计算机
你知道是什么导致了这种行为吗?我完全放弃了打开一个弹出窗口。这是一个如此痛苦的工作与他们,并没有那么友好的用户考虑到有弹出窗口拦截器遍布各地
我所做的是:
在我的ASP.NET MVC应用程序中创建了一个
元素,并将其操作分配给一个控制器操作
<form id="mapform" action="myproject/map/ArcGisMap" target="_blank" method="post"></form>
然后使用一些jQuery
代码,我们可以在单击该按钮时模拟表单提交:
<script type="text/javascript">
$("#arcGISMap").click(function()
{
$('#mapform').submit();
});
</script>
在我的Razor
视图中,我添加了以下内容:
@{
Layout = null;
}
将布局设置为null
允许我仅在屏幕上渲染地图
[HttpPost]
public ActionResult ArcGISMap()
{
return View();
}
@{
Layout = null;
}