php - window.open() 팝업이 차단되었습니다.
PHPz
PHPz 2017-05-16 13:12:48
0
8
710

백엔드에서 URL을 전달하면 이를 수신한 후 프런트엔드가 새 창을 열고 이 링크로 이동합니다.
window.open(url, '_blank');를 사용하세요. 브라우저에 의해 차단됩니다.< /p>

이를 달성할 수 있는 방법이 있습니까? a 태그의 클릭을 시뮬레이션하려고 시도했지만 여전히 이를 가로채고 있습니다. p가 팝업되어 iframe을 로드하면 창이 열리지 않습니다.< /p>

문제가 해결되었습니다. 허용된 답변을 확인하세요.

PHPz
PHPz

学习是最好的投资!

모든 응답(8)
巴扎黑

이 질문에 대해 먼저 브라우저가 "인공적이지 않은" 호출을 수행하는 이유를 이해해야 합니다. 그런 다음 ajax로 이동하여 데이터를 얻은 다음 대략적인 의사 코드에 URL을 할당합니다. 다음과 같습니다:window.open的弹窗进行拦截,什么叫做"非人为"的,就是浏览器判断在用户操作和window.open之间不是连续的,浏览器会认为可能是流氓程序弹出的广告窗口从而进行拦截
从楼主的描述可以看出,楼主应该是进行某个操作之后,通过ajax去获取一个url,然后通过window.open打开页面,我们都知道ajax是异步的,浏览器就认为不是连续的,所以就拦截了
解决方法可以先在操作(比如点击)的时候,直接window.open 으아악

过去多啦不再A梦

으아아아

별거 없습니다.

仅有的幸福

_blank를 추가하나요?

으아아아
小葫芦

URL에 http 또는 https 헤더가 있는 경우

漂亮男人

메서드를 트리거하는 이벤트를 a 태그로 작성하고, a 태그가 가리키는 컨트롤러에서 URL을 가져오는 로직을 작성하면 간단히 window.open 메소드를 우회하여 새 페이지로 돌아갈 수 있습니다

过去多啦不再A梦

보안상의 이유로 브라우저는 자동으로 팝업을 차단합니다

我想大声告诉你

window.open와 같이 사용자가 클릭한 후 짧은 시간 내에 새 창을 여는 명령만 차단되지 않습니다. 이는 브라우저의 보안 제한 사항입니다.

给我你的怀抱

ajax 요청에 매개변수를 하나 더 추가해 보세요:async: false

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿