2014-02-28 2 views
-2

콜백 함수가 새 창을 여는 상황이 있습니다. 나는 브라우저가 콜백이 사용자 행동이 아니며 모든 것이 사용자 클릭에 의해 트리거되지만 팝업을 차단한다고 생각한다.콜백 함수가 새 창을 엽니 다.

콜백 구현이 필요합니다. 여기에 사용할 수있는 트릭이 있습니까? 난 그냥 몇 가지 지침

function checkDoc(function){ 
onLoadSuccess{ 
    function(url) 
} 
} 

function openDoc(){ 

function openWindow(url) { 
window.open(url); 
} 

checkDoc(openWindow); 
} 
+0

자세한 내용을 참조하십시오. –

+0

상황을 알려 주시겠습니까? –

+0

자, 가서 코드를 보시오 – Jacob

답변

1

여기에 사용 가능한 모든 트릭이 있습니까 필요 downvote하지 마십시오.

아니요. 앞에서 말했듯이 브라우저는 사용자 이벤트 처리 중에 이 아니고이 아닌 팝업을 열어 보았고 사용자가 올바르게 수행하지 못하게합니다. 옵션 :

  1. 가장 좋은 방법은 새 창을 열 수 있지만, 윈도우 내에서 - 더 - 기존의 윈도우 (예를 들어, 절대 위치 div의 등)를 열고 현대 기술을 사용하지입니다.

  2. 사용자가 콜백에서받은 정보를 사용하여 창을 열 때 클릭하는 새로운 버튼 (또는 원하는 UI)이 콜백에 표시 될 수 있습니다. 예 : "결과가 준비되었습니다. [여기를 클릭하십시오] 새 창에서 결과를 볼 수 있습니다." 그런 다음 사용자 작업 내에서 창을 다시 열면 브라우저에서 허용합니다.

  3. 의 하나에 대한 매우 가난한 제 3의 선택은 위의 window.open 취급시에 발생하므로, 동기을 그 콜백을 트리거 당신이 어떻게하든 있도록 (아약스, 내가 추측하고있어)이 될 것입니다 사용자 이벤트의 그러나 물론, 동기 아약스는 나쁜 생각 (TM)는 ...

당신의 편집 다시

: 예를 들면 그래서, 위의 # 2 checkDoc는 말을 UI에서 뭔가를 보여주고 있다는 것 문서가 준비되어 있으며 클릭하여 열 수있는 링크가 제공됩니다.

+0

진행률 표시 줄을 표시하면서 두 번째 옵션을 선택했습니다. 로딩이 완료되면 버튼이 활성화됩니다. 이 버튼을 클릭하면 원하는 내용이 수행됩니다. – Jacob

관련 문제