2016-07-19 2 views
0

Haxe/OpenFL 코드 :차단하지 않고 브라우저에서 새 탭을 열려면 어떻게해야합니까?

import openfl.net.URLRequest; 
import openfl.Lib; 

Lib.getURL (new URLRequest (url), "_self"); 
// Opens the linked document in the same window or tab as it was clicked 

Lib.getURL (new URLRequest (url), "_blank"); 
// Opens the linked document in a new window or tab. (this is default) 

그러나, 두 번째 옵션은 크롬에 의해 차단 된 팝업을 생성합니다.

차단하지 않고 다른 탭에서 링크를 여는 방법은 무엇입니까? 자바 스크립트는이 작품으로

:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

<title>OpenNewTab</title> 

<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
<meta name="apple-mobile-web-app-capable" content="yes"> 

</head> 
<body> 

<center> 
    <canvas id="myCanvas" width="200" height="200" style="border-style: solid; border-width: 1px"> </canvas> 
</center> 

<script> 

    var canvas; 
    var linkURL = "http://www.google.com";   

    createLink(); 

    function createLink() { 

     canvas = document.getElementById("myCanvas");   
     canvas.addEventListener("click", Link_click, false); 

    } 

    function Link_click(e) { 

     window.open(linkURL,'_blank'); 

    }  
</script> 

</body> 
</html> 

P.s : 나는 Stencyl 및 HTML/자바 스크립트를 사용합니다.

답변

0

사용자가 트리거 한 이벤트 (예 : 포인터를 아래로 클릭)에서 팝업을 열면 popupblocker가 팝업을 열지 않아야합니다.

참고 : 개인적으로 개발자가 창을 열어야하는 방법을 결정할 때 개인적으로 혼란 스러울 수 있습니다. 나는 더 나은 솔루션을 찾을 수없는 동안

+0

감사합니다. 예. 그것이 앵귤러 2와 같이 페이지에 링크 또는 div를 삽입하는 방법이 있습니까? – Gurigraphics

+0

나는 당신이 무엇을 요구하고 있는지 이해하지 못한다. window.open은 사용자 트리거 이벤트에서 호출해야합니다. –

0

나는 이것을 사용합니다 : 답장을

import openfl.net.URLRequest; 
import openfl.Lib; 

class Web 
{ 

public static function open(s:String, code:Int) 
{ 
    var type:String = "_self"; 
    var s:String = s; 
    var code:Int = code; 

    if(code==1){ 
     type = "_self"; 
    }else if(code==2){ 
     type = "_blank"; 
    } 

#if js  
     untyped __js__(' 

       var canvas; 
       var linkURL = s; 
       var lock = 0; 

       if(lock==0){ 
        lock =1; 
        createLink(); 
       } 

       function createLink() { 

        canvas = document.getElementById("openfl-content");   
        canvas.addEventListener("click", Link_click, false); 

       } 

       function Link_click(e) { 

        window.open(linkURL,type); 

       }  

     ');    

#else 
    Lib.getURL (new URLRequest (s), type); 
#end 
} 

} 
+0

'createLink'를 호출 할 때마다 다른 리스너를 추가한다는 점에 유의하십시오. 이로 인해 예기치 않은 결과가 발생할 수 있습니다. –

+0

진실. 고맙습니다. – Gurigraphics

관련 문제