1

나는 이상한 시나리오를 가지고있다. .. 3 시간 이상 그것에 관해 고투하고 난 후에 나는 질문하기로 결정했다.document.write로 팝업에 삽입 된 HTML 페이지가 IE 7/8에서 새로 고침해야하는 이유는 무엇입니까?

는이 코드와 popup 창을 열어 해요 : map는 Esri는 bootstrap-map-js의 사용을하고 내가 AJAX 호출을 통해 얻을 수있는 페이지의 전체 HTML 코드를 포함

var mapWin = window.open('', '', params); 

mapWin.document.open(); 
mapWin.document.write(map); 
mapWin.document.close(); 

. 이 페이지의 코드는 <link><script> 태그를 포함합니다.

모든 기능은 Firefox와 Chrome에서 항상 잘 작동합니다. :) 문제는 공주애IE 7/8입니다. IE 11 Developer Tools으로 테스트하고 문서 모드를 IE 7 또는 IE 8으로 설정하면 document.write은 내용을 새 창에 표시하지만 결과는 map에 포함 된 <script> 중 일부를 실행하거나 실행하지 않는 것 같습니다. 결과 맵은 화면에 렌더링되지 않습니다.

이상한 점은 팝업 창을 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 선택하면 페이지가 예상대로 렌더링되고지도가 표시된다는 것입니다.

참고 : 모든 스크립트는 localhost, 즉 내 컴퓨터에 있습니다.

이러한 문제의 원인에 대한 아이디어가 있으십니까?

답변

0

개구부가 완전히 열렸습니다. 팝업입니다.

의 조치가 가리키는 <form> 요소를 생성하고 할당 : 내가 무슨 짓을

이는 ... 그들과 함께 일을하고 그렇지 않은 사용자 친화적 인 팝업 차단기가 모두 걸쳐 있다는 것을 제공하기 위해 이러한 고통 내 ASP.NET MVC 응용 프로그램에서 컨트롤러 동작.

<form id="mapform" action="myproject/map/ArcGisMap" target="_blank" method="post"></form> 

target="_blank"에 대해 메모하십시오.

는 또한 가지고 <button> : 그것은 그것을 제출 때 형태가 target="_blank"이 있기 때문에

<script type="text/javascript"> 

$("#arcGISMap").click(function() 
{ 
    $('#mapform').submit(); 
}); 

</script> 

:

<button type="button" id="arcGISMap">ArcGIS Map</button> 

그런 다음 몇 가지 jQuery 코드로 우리는 그 버튼을 클릭하면 제출 양식을 시뮬레이션 할 수 있습니다 새 브라우저 탭을 엽니 다. 내가 원했던 것.설정

@{ 
    Layout = null; 
} 

: 내 Razor보기에

[HttpPost] 
public ActionResult ArcGISMap() 
{ 
    return View(); 
} 

내가이 추가 : 해당 브라우저 (하지 새로운 팝업 창이) 이제 액션 메소드에 의해 반환되는 View있다 Layout ~ null을 사용하면 화면의지도 만 렌더링 할 수 있습니다.