이 질문에 대해 먼저 브라우저가 "인공적이지 않은" 호출을 수행하는 이유를 이해해야 합니다. 그런 다음 ajax로 이동하여 데이터를 얻은 다음 대략적인 의사 코드에 URL을 할당합니다. 다음과 같습니다:window.open的弹窗进行拦截,什么叫做"非人为"的,就是浏览器判断在用户操作和window.open之间不是连续的,浏览器会认为可能是流氓程序弹出的广告窗口从而进行拦截 从楼主的描述可以看出,楼主应该是进行某个操作之后,通过ajax去获取一个url,然后通过window.open打开页面,我们都知道ajax是异步的,浏览器就认为不是连续的,所以就拦截了 解决方法可以先在操作(比如点击)的时候,直接window.open
으아악
이 질문에 대해 먼저 브라우저가 "인공적이지 않은" 호출을 수행하는 이유를 이해해야 합니다. 그런 다음 ajax로 이동하여 데이터를 얻은 다음 대략적인 의사 코드에 URL을 할당합니다. 다음과 같습니다:
window.open
的弹窗进行拦截,什么叫做"非人为"的,就是浏览器判断在用户操作和window.open
之间不是连续的,浏览器会认为可能是流氓程序弹出的广告窗口从而进行拦截从楼主的描述可以看出,楼主应该是进行某个操作之后,通过ajax去获取一个url,然后通过
window.open
打开页面,我们都知道ajax是异步的,浏览器就认为不是连续的,所以就拦截了解决方法可以先在操作(比如点击)的时候,直接
window.open
으아악으아아아
별거 없습니다.
왜 _blank를 추가하나요?
으아아아URL에 http 또는 https 헤더가 있는 경우
메서드를 트리거하는 이벤트를 a 태그로 작성하고, a 태그가 가리키는 컨트롤러에서 URL을 가져오는 로직을 작성하면 간단히 window.open 메소드를 우회하여 새 페이지로 돌아갈 수 있습니다
보안상의 이유로 브라우저는 자동으로 팝업을 차단합니다
window.open
와 같이 사용자가 클릭한 후 짧은 시간 내에 새 창을 여는 명령만 차단되지 않습니다. 이는 브라우저의 보안 제한 사항입니다.ajax 요청에 매개변수를 하나 더 추가해 보세요:
async: false