2016-07-14 4 views
1

Instagram API를 사용하고 로그 아웃하는 유일한 방법은 사용자를 Instagram 페이지로 리디렉션하는 링크 https://instagram.com/accounts/logout/입니다. 대체 방법) 알려주십시오. 그러나 사용자를 내 페이지로 리디렉션하고 싶습니다. (이전에 this 게시물에서 수행 할 방법을 시도했지만 img/iframe은 사용자를 추가하여 내 페이지로 리디렉션하지만 사용자는 여전히 로그인되었습니다.) 이것은 현재 사용중인 코드입니다.window.close()가 작동하지 않음 (원래 JS/JQuery를 통해 열림)

$('.logout').on("click", function() { 
    window.open('https://instagram.com/accounts/logout/'); 
    window.close(); 
    window.location.replace("logout-page.html"); 
} 

Instagram 페이지가 성공적으로 새 탭에서 열리 며 내 페이지가 로그 아웃 페이지로 리디렉션되지만 사용자가 로그인 한 후에 Instagram 로그 아웃 페이지를 닫으려고합니다. 다른 사람들은 window.close()window.open()을 사용하여 스크립트를 통해 열렸을 때만 작동하며 여전히 작동하지 않는다고 말하고 있습니다. 나는 또한 window.open("", self).close()과 그 다른 변형을 시도했는데 그것들은 나에게도 효과가 없었다.

+0

"Instagram 로그 아웃 페이지를 닫으려고합니다."그래서 새로 열린 창을 닫으시겠습니까? 그것을 변수에 저장하고 그 변수를'close()'에 대한 컨텍스트로 사용하십시오. 현재 현재 창, 즉 스크립트를 실행하는 창을 닫으려고합니다. – Teemu

+0

나는 또한 그걸 시도했지만 어느 쪽도 작동하지 않았다. –

+0

?? [지연] (https://jsfiddle.net/t4zfe8so/)을 시도하십시오. – Teemu

답변

1

열린 창을 닫으려면 개체로 정의해야합니다.

setTimeout 닫기 지연으로 인해 URL을 완전히 열 수 있습니다.
필요한 경우 지연을 조정하십시오 ... 그러나 1 초가 작동해야합니다.

myWindow = window.open('https://instagram.com/accounts/logout/'); 

setTimeout(function(){ 
    myWindow.close(); 
},1000); 

편집
내가하는 방법이 this answer에서 발견
"숨기기"팝업 ... 할 수없는 것 같다,하지만 팝업 페이지에 스크립트를 추가해야합니다. ..

위의 스크립트를 사용하면 팝업이 새 탭으로 열리고 ... 1 초 만 열립니다. 그게 내가 말할 수있는 최선 이었어 ... 내가 찾을 때까지 this other solution 시도 할 수 있습니다.

+0

나는 그것들을 시도해 보았지만 불행히도 작동하지 않았다. –

+1

오 크로스 도메인 요청 ... – SparK

+0

지연으로 내 대답을 업데이트했다 ... 아마도 페이지를로드 할 수있을만큼 길게 열린 창을 유지해야 할 필요가있다. ;) –

1

window.open은 열려있는 새 창의 개체를 반환합니다. 새 열 창에 페이지를 성공적으로로드 여부를 모르거나 그것을로드 완료하기 때문에 어쨌든 이것은 좋은 해결책이 아니다

new_window = window.open("url"); 
new_window.close(); 

이 새 창을 수정하려면 같은 반환 된 객체를 사용해야합니다 .

난 그냥 같이 현재 페이지를 새 창에서 로그 아웃 페이지를 열고 리디렉션 추천 :

my_window = window.open("url", "Window-Name", "height=200,width=200"); 
document.location = "your_url"; //redirects the current page...` 
+0

위대한 작품! 그래도 원래 창 뒤에 새 창을 열 수있는 방법이 있는지 알고 있습니까? 그래서 사용자가 갑자기 팝업 창이 사라지는 것을 보지 못합니다. –

+1

예! 여기에서 읽으십시오 http://www.w3schools.com/jsref/met_win_open.asp 당신은 뷰포트에서 새로운 창을 ... 위치시킬 수 있습니다'left = "- 1000px", 최고 = "- 1000px"' –

+0

같이 좋게, 감사! –

0

은 어딘가 DOM에 추가됩니다 숨겨진 iframe이있는 URL을 엽니 다.

$('#content').append('<div style="display:none"><iframe src="https://instagram.com/accounts/logout/" width="0" height="0"></iframe></div>'); 

이, 나는 앱에서 여러 계정 로그인을 로그 아웃 할 수 있도록 https://www.picosdash.com에서 구현하는 방법입니다 좋은 작품 : 다음은 jQuery 코드입니다.

+0

그게 내가 위의 링크 된 다른 게시물은 나를 위해 작동하지 않았다는 것을 제안했습니다 –

+0

그것은 콘솔에서이 오류를 발생시킵니다 :'프레임에 'https://www.instagram.com/' X-Frame-Options '을'SAMEORIGIN '으로 설정합니다 .' ... 모든 브라우저에서 볼 수는 없지만 Chrome에서는. –

+0

나도 알지만 로그 아웃하면 오류가 발생하여 나중에 URL이 "instagram.com"으로 리디렉션되고 'X-frame-Options'로 차단되지만 로그 아웃 URL이 열리고 로그 아웃 작업이 수행됩니다 – krisrak