2013-02-25 3 views
1

나는 많은 질문을 받았지만 여기에서 찾을 수있는 것은 거의 아무것도 찾지 못했다. 기본 iOS 브라우저에서 "외부"클래스와 링크를 열려고하지만이를 관리 할 수 ​​없습니다. 는 여기에 내가 뭘하려 :코르도바 2.3.0 iOS에서 Safari의 링크 열기

$('.external').live('click', function(event) { 
    event.preventDefault();      
    var url = $(this).attr('href');    
    loadURL(url);        
}) 

function loadURL(url){ 
    var ref = window.open(url, '_system'); 
} 

폰갭 문서로, 지금 시스템 웹 브라우저에서 링크를 열해야하지만, 그것은 항상 InAppBrowser, 링크 대상의 상관없이 사용합니다. 또한 config.xml에서 "OpenAllWhitelistURLsInWebView"를 false로 설정합니다. 변경 없음.

답변

1

클릭 핸들러가 실제로 호출되는지 다시 확인할 수 있습니까? 이벤트 처리기를 첨부하는 코드를 잘못된 위치 (예 : onDeviceReady()에 넣으면 클릭 핸들러가 호출되지 않음) -> 앱 내부에서 링크가 항상 열립니다. 또한 jquery ".on"이후 ".live"jquery 1.9 제거되었습니다; 나는 내 시험을 위해 사용했다.

Cordova 2.4.0에서 다음 코드를 테스트 한 결과 작동합니다. 다음은 몇 가지 중요한 코드 발췌입니다 :

HTML 부분 :

<a class=".external" href="http://www.google.com">Go to external page</a> 

자바 스크립트 부분 :

function loadURL(url){ 
     var ref = window.open(url, '_system'); 
    } 

    $(function(){ 

     $('.external').on('click', function(event) { 
     event.preventDefault(); 
     var url = $(this).attr('href'); 
     loadURL(url); 
     }); 

    }); 
+0

이는 안드로이드입니다. – movsky

+0

방금 ​​내 대답을 업데이트했습니다. 도움이되기를 바랍니다. – Aki

+0

글쎄, 전혀 도움이 안된다. 왜냐하면 내가 시작점에서 쓴 것처럼 OpenAllWhitelistURLsInWebView를 false로 설정하려고했기 때문이다. 그러나 그것은 효과가 없습니다. 어쨌든 고마워. 내 말은, – movsky