2016-07-19 86 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) 

然而,第二個選項生成由鉻阻止彈出。

如何打開另一個選項卡中的鏈接而不被阻止?

用JavaScript這項工作:

<!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/JavaScript的。

回答

0

我相信如果彈出窗口是從用戶觸發的事件打開(如指針向下,單擊),popupblock不應阻止打開它。

注:我個人覺得很煩人,開發人員決定如何打開一個窗口,爲什麼不讓用戶自己決定?

+0

感謝您的答覆。是。這是否存在任何方式來注入一個鏈接或div在Angular 2中的頁面? – 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

相關問題