window. open () 팝 업 창 차단

1334 단어 window.open
window. open () 은 말 그대로 현재 브 라 우 저 창 에 다른 브 라 우 저 창 을 팝 업 하 는 것 을 말한다.
여러 가지 이유 로 팝 업 창 을 탐색 하 는 데 여러 가지 제한 을 두 었 습 니 다.제한 이 다 르 면 브 라 우 저 팝 업 창의 차 이 를 초래 할 수 있 습 니 다.
대부분의 브 라 우 저 는 자 바스 크 립 트 가 팝 업 하 는 창 (blocked) 을 막 고 사용자 의 허락 을 받 으 면 해당 팝 업 창 을 엽 니 다.
현재 문 제 는 사용자 가 단 추 를 누 르 면 관련 ajax 요청 을 하 는 것 입 니 다. 응답 시간 이 너무 길 기 때문에 데이터 가 돌 아 왔 을 때 브 라 우 저 는 사용자 가 주도 하 는 작업 시간 범주 에 있다 고 생각 하지 않 고 Blocked 는 팝 업 창 을 떨 어 뜨 립 니 다.
해결 방법: window. open 방법 은 새 창 을 가리 키 는 인용 을 되 돌려 주기 때 문 입 니 다.이 인용 을 통 해 새로 열 린 창 을 조작 할 수 있 습 니 다.따라서 사용자 가 btn 을 클릭 할 때 첫 번 째 로 창 을 팝 업 하여 팝 업 창의 인용 을 가 져 옵 니 다.그리고 ajax 데이터 요청 을 진행 합 니 다. 데이터 가 돌아 올 때 창 url 주 소 를 설정 하 십시오: new Window. location = url;1) call window.open just before calling $.ajax and save window reference:var newWindow = window.open("loading.html");//loading. html 의 과도 페이지 2) on callback set location property of the saved window reference: new Window. location = url 을 추가 해 야 할 수도 있 습 니 다.
물론 문제 가 있 습 니 다. ajax 가 요청 한 데이터 가 잘못 되 었 을 때 새 팝 업 창 에서 최신 데 이 터 를 가 져 오지 못 해 오류 가 발생 했 습 니 다.
해결 방법 은 요청 이 완료 되 고 오류 가 발생 했 을 때 new Window 를 오류 페이지 로 이동 시 키 는 것 입 니 다.
또는 loading. html 페이지 에서 스스로 타 이 머 를 만 들 거나 30 분 안에 urlchange 가 없 으 면 스스로 잘못 뛰 습 니 다.
그래도 안 되면 경고 만 할 수 있 습 니 다 ('팝 업 차단 기 를 사용 하도록 설정 되 어 있 습 니 다. company. com 용 팝 업 을 허용 하 십시오').

좋은 웹페이지 즐겨찾기