문제

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

다른 사람들이 언급 한 시도/캐치도 좋은 생각입니다. 제 생각에는.

또한 팝업이 이미 열려 있지만 최소화 된 창을 사용하려고 할 가능성이 있습니다. 그래서 작동하는 것처럼 보이지만 실제로 최소화 된 창을 다시로드하는 것입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top