반응형
Javascript window.open이 작동하지 않음
네, 트위터에 로그인하려고 합니다.이 코드에서는 창이 열리지 않습니다.경고를 받은 응답은 null이 아니며 로그인 화면에 대한 링크입니다.좋은 생각 있어요?
var url = "./twitter_login.php";
var con = createPHPRequest();
con.open("POST",url,true);
con.setRequestHeader("Content-type","application/x-www-form-urlencoded");
con.send("");
var response = "";
con.onreadystatechange = function() {
if(con.readyState==4 && con.status==200) {
response = con.responseText;
alert(response);
window.open(response,"twitter","menubar=1,resizable=1,width=350,height=500");
}
}
현재 대부분의 브라우저에 포함되어 있는 표준 팝업블로커 로직에 의해window.open()
사용자 조작의 직접적인 결과가 아닙니다.타이머 또는 비동기 콜백(ajax ready 함수 등)에 의해 트리거된 코드는 사용자 액션에 의해 직접 발생하지 않는 것으로 처리되며 일반적으로 새로운 팝업창은 차단됩니다.
브라우저의 팝업 차단을 일시적으로 변경하여(끄고) 동작을 개시하는 것을 확인할 수 있습니다.
회피책으로서 필요한 것은 이 코드 스레드를 시작한 사용자 액션에 따라 창을 만들고, Ajax 응답을 받았을 때 내용을 창에 넣는 것입니다.브라우저는 아마 그것을 허용할 것이다.시각적인 관점에서는 그다지 바람직하지 않다는 것을 알지만, Ajax 응답이 올 때까지 창에 임시 콘텐츠를 넣을 수 있습니다(예를 들어 "loading..")..").
그냥 똑같은 문제가 있었어혹시나 네가 그걸 고칠 암호를 원할까봐.저는 이걸 썼어요
newWindow = window.open("", "_blank");
request = $.ajax({ ... my request which returns a url to load ... })
request.done((function(_this) {
return function(data, textStatus, jqXHR) {
return newWindow.location = data.Url;
};
})(this));
언급URL : https://stackoverflow.com/questions/11821009/javascript-window-open-not-working
반응형
'source' 카테고리의 다른 글
React.js를 사용하여 속성이 있는지 확인합니다. (0) | 2023.02.17 |
---|---|
구성 요소 외부에서 Redux 동작을 트리거할 수 있습니까? (0) | 2023.02.17 |
태플은 어떻게 JSON과 시리얼화 및 시리얼화 해제합니까? (0) | 2023.02.17 |
Javascript Object와 JSON Object의 차이점은 무엇입니까? (0) | 2023.02.13 |
스프링 부팅에서 애플리케이션 컨텍스트를 사용하여 빈을 얻는 방법 (0) | 2023.02.13 |