2016-11-22 77 views
0

我需要一些关于此的帮助,我想知道如何在用户单击页面上的任何位置时打开新选项卡。这是给我的博客。我有这样的代码:当用户单击页面上的任何位置时,打开新选项卡

<script type="text/javascript"> 
 

 
    var popup = function() { 
 

 
     window.open ("http://example.com", "Window","status=1,toolbar=1,width=500,height=300,resizable=yes"); 
 
    } 
 

 
</script> 
 
<body onclick="popup()"> 
 
    <h1>Click anywhere!</h1> 
 
</body>

但由于每次点击打开一个新标签不工作,我想这代码饼干

<SCRIPT LANGUAGE="JavaScript"> 
 

 
<!-- Begin 
 
var expDays = 1; // number of days the cookie should last 
 

 
var page = "only-popup-once.html"; 
 
var windowprops = "width=300,height=200,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes"; 
 

 
function GetCookie (name) { 
 
var arg = name + "="; 
 
var alen = arg.length; 
 
var clen = document.cookie.length; 
 
var i = 0; 
 
while (i < clen) { 
 
var j = i + alen; 
 
if (document.cookie.substring(i, j) == arg) 
 
return getCookieVal (j); 
 
i = document.cookie.indexOf(" ", i) + 1; 
 
if (i == 0) break; 
 
} 
 
return null; 
 
} 
 
function SetCookie (name, value) { 
 
var argv = SetCookie.arguments; 
 
var argc = SetCookie.arguments.length; 
 
var expires = (argc > 2) ? argv[2] : null; 
 
var path = (argc > 3) ? argv[3] : null; 
 
var domain = (argc > 4) ? argv[4] : null; 
 
var secure = (argc > 5) ? argv[5] : false; 
 
document.cookie = name + "=" + escape (value) + 
 
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
 
((path == null) ? "" : ("; path=" + path)) + 
 
((domain == null) ? "" : ("; domain=" + domain)) + 
 
((secure == true) ? "; secure" : ""); 
 
} 
 
function DeleteCookie (name) { 
 
var exp = new Date(); 
 
exp.setTime (exp.getTime() - 1); 
 
var cval = GetCookie (name); 
 
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); 
 
} 
 
var exp = new Date(); 
 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000)); 
 
function amt(){ 
 
var count = GetCookie('count') 
 
if(count == null) { 
 
SetCookie('count','1') 
 
return 1 
 
} 
 
else { 
 
var newcount = parseInt(count) + 1; 
 
DeleteCookie('count') 
 
SetCookie('count',newcount,exp) 
 
return count 
 
    } 
 
} 
 
function getCookieVal(offset) { 
 
var endstr = document.cookie.indexOf (";", offset); 
 
if (endstr == -1) 
 
endstr = document.cookie.length; 
 
return unescape(document.cookie.substring(offset, endstr)); 
 
} 
 

 
function checkCount() { 
 
var count = GetCookie('count'); 
 
if (count == null) { 
 
count=1; 
 
SetCookie('count', count, exp); 
 

 
window.open(page, "", windowprops); 
 

 
} 
 
else { 
 
count++; 
 
SetCookie('count', count, exp); 
 
    } 
 
} 
 
// End --> 
 
</script>

但不起作用,因为浏览器会阻止弹出窗口。

一些网站,如powvideo或animeflv有剧本,当用户点击任何地方自动打开像数据的新标签:text/html的; BASE64,XXXXX

感谢。

+0

你有没有试过我的答案。不能容易得多。 –

回答

1

你只需要一个标志,可以检查是否仍然可以打开弹出窗口。

var openPage = true; 
 
function popup() { 
 
    if(openPage){ 
 
    window.open ("http://example.com","Window","status=1,toolbar=1,width=500,height=300,resizable=yes"); 
 
    openPage = false; 
 
    } 
 
}
<body onclick="popup()"> 
 
    <h1>Click anywhere!</h1> 
 
</body>

+0

当用户重新加载页面时,这将失效,当然取决于你想如何定义'一次' – empiric

+0

我认为重新加载不会被认为是同一页面。 –

+0

只是说,我认为他不想让这个显示出来,因为他试图在主页上使用cookies – empiric

0
<body class="index"> 

    <h1>Click anywhere!</h1> 

    <script type="text/javascript"> 

    var homepage = document.querySelector('body.index'); 

    var popUp = function(e) { 
     window.open ("http://example.com", "Window","status=1,toolbar=1,width=500,height=300,resizable=yes"); 
     homepage.removeEventListener('click', popUp, false); 
    } 

    homepage.addEventListener('click', popUp, false); 

    </script> 


</body> 
+0

,但是当我点击某篇文章然后点击任何地方再次出现相同的弹出窗口。 在网站animeflv只是在第一次点击打开,然后我导航,并不会再出现,直到我刷新页面。 –

+0

我已经更新到我的答案。如果您在主页上为主页上的主体标签添加了一个“主页”类,则该功能仅适用于该页面。 – JimmyBob

+0

让我更好的解释一下,我只想弹出一次,直到用户刷新网页后才再出现,如果他在某些文章中输入不再出现。如果他从Facebook直接进入文章,弹出窗口会出现,直到他刷新网站才会出现。这个想法是使用类似广告活动的侵入式广告,但只有一次出现,直到他刷新网站或打开新标签。 –

0
<script> 
var clickCounter = 0; 

function clickMagnet(e){ 
    if(clickCounter == 0) { 
    // open window code here 
    } 
    clickCounter++; 
} 
</script> 
<body onclick="clickMagnet"> 

你需要一个跟踪点击的变量。如果它大于0,则什么也不做。在我的例子中,我将一个函数绑定到由click事件触发的主体。 clickCounter变量记录点击次数。把你的代码打开窗口内条件检查== 0,如果条件你应该是好的。

相关问题