Internet Explorer에서 팝업 창을 열 때 이상한 동작이 발생함
-
06-07-2019 - |
문제
Internet Explorer에서 창을 팝업하려면 다음 JavaScript 코드가 있습니다.코드는 Microsoft CRM 모달 대화 상자 내의 페이지에서 실행됩니다.(RequestID는 테스트 시스템에서 항상 동일한 문자열입니다. 현재는 따옴표 없이 "abcdefg"를 포함하고 있습니다.)
var cancelUrl = "CancelRequest.aspx?RequestID=" + RequestID;
alert("About to open a window.\n\n" + cancelUrl);
window.open(cancelUrl);
alert("Window opened");
나는 곧 창을 열 것이라는 메시지를 보게 될 것으로 예상합니다.그런 다음 창이 열려 있는 것을 보고 창이 열렸다는 또 다른 메시지를 받을 것으로 예상합니다.나는 지난 두 사건의 순서에 별로 관심이 없습니다.경고가 있으므로 코드가 실행되었음을 알 수 있습니다.
두 대의 PC와 하나의 가상 PC가 있습니다.모두 IE7을 실행 중입니다.Windows 2003 VPC에서는 어김없이 메시지와 팝업이 뜹니다.
Vista PC, WinXP PC에서는 메시지가 나오지만 팝업이 간헐적으로만 나타납니다.(Vista PC에서도 마찬가지일 것 같습니다.)
세 가지 모두 IE에서 동일한 설정을 갖습니다.모두 IE 팝업 차단기가 비활성화되어 있으며 다른 팝업 차단기가 설치되어 있지 않습니다.
누구든지 이것에 대해 밝힐 수 있습니까?
해결책
아, 내가 얻은 것 같아 ... 설명에서 놓쳤다 ...
당신은 비 모달을 열려고합니다 창문 모달 대화에서 안에 즉.
이 Afaik은 작동하지 않아야합니다.
대신 다른 모달 창을 열어보십시오.
효과적으로 당신은 말하고 있습니다 ...
Window A에서 Modal Window B를 열고 이제는 비 모달 창 C를 열어 실제로 유효하지 않습니다.
다른 팁
이 코드는 간단합니다.디버거를 사용하여 무슨 일이 일어나고 있는지 확인하십시오.
FireFox 또는 Chrome으로 해당 사이트를 확인하세요. JS 디버거가 있습니다.
편집하다:
주변에 try/catch 블록을 추가하세요. window.open()
거기에 예외가 있는지 확인하십시오.
편집 2:
이제 RequestId로 문자를 보내는 것을 확인했습니다.해당 URL이 그런 종류의 값을 처리할 수 있는지 확인해야 합니다.이름이 이래서 RequestId
숫자로만 구성된 매개변수가 있어야 할 가능성이 크다고 말하고 싶습니다.그것이 맞다면, 창을 열려고 할 때 서버 측이 충돌하고 아무 일도 일어나지 않는 일이 발생할 수 있습니다.try/catch 블록을 설정하고 테스트해야 하는 이유가 더 있습니다.
IE에서 작동하는 Firebug Lite를 사용해 볼 수 있습니다.
http://getfirebug.com/lite.html
다른 사람들이 언급 한 시도/캐치도 좋은 생각입니다. 제 생각에는.
또한 팝업이 이미 열려 있지만 최소화 된 창을 사용하려고 할 가능성이 있습니다. 그래서 작동하는 것처럼 보이지만 실제로 최소화 된 창을 다시로드하는 것입니까?