gpt4 book ai didi

javascript - adblock 处于事件状态时显示弹出窗口

转载 作者:行者123 更新时间:2023-11-30 15:51:18 27 4
gpt4 key购买 nike

我使用这个简单的代码来检测 adblock 是否处于事件状态

<script>
(function(){
var test = document.createElement('div');
test.innerHTML = '&nbsp;';
test.className = 'adsbox';
document.body.appendChild(test);
window.setTimeout(function() {
if (test.offsetHeight === 0) {
alert("active");
} else {
alert("not active");
}
test.remove();
}, 100);
})();

到目前为止一切正常。

我不需要显示警告消息,而是需要一个 jquery 弹出窗口。因此我将上面的代码改为:

<script>
(function(){
var test = document.createElement('div');
test.innerHTML = '&nbsp;';
test.className = 'adsbox';
document.body.appendChild(test);
window.setTimeout(function() {
if (test.offsetHeight === 0) {
showmessage();
}
test.remove();
}, 100);
})();
</script>

没有这个功能

showmessage();   

工作完美。

当showmessage();在此函数内,弹出窗口不会出现。取而代之的是 showmessage();内容显示在没有 CSS 的网站上,而不是弹出窗口。我认为这与超时功能有关。但是如果没有这个超时,检测在 firefox 中不起作用。

来自 showmessage() 的内容;

function showmessage(){
document.write("<div id=\"boxes\">");
document.write(" <div id=\"dialog\" class=\"window\">");
document.write(" <div style=\"display: none; opacity: 0.8;\" id=\"mask\">
<\/div>");
document.write("<\/div></div>");

setTimeout(
function() {
var id = '#dialog';

//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();

//Set heigth and width to mask to fill up the whole screen
$('#mask').css({'width':maskWidth,'height':maskHeight});

//transition effect
$('#mask').fadeIn(500);
$('#mask').fadeTo("slow",0.9);

//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();

//Set the popup window to center
//$(id).css('top', winH/2-$(id).height()/2);
$(id).css('left', winW/2-$(id).width()/2);

//transition effect
$(id).fadeIn(1000);

//if close button is clicked
$('.window .close').click(function (e) {
//Cancel the link behavior
e.preventDefault();

$('#mask').hide();
$('.window').hide();
});

//if mask is clicked
/*$('#mask').click(function () {
$(this).hide();
$('.window').hide();
}); */

}, 200);
}

非常感谢

最佳答案

使用 prepend 方法到 body,然后将弹出的 HTML 字符串设置到方法中。 :

function showmessage(){
var jQueryPopupHTML = "<div id='boxes'><div id='dialog' class='window'> <div style='display: none; opacity: 0.8;' id='mask'></div></div></div>"
$( "body" ).prepend(jQueryPopupHTML);

setTimeout(
function() {
var id = '#dialog';

//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();

//Set heigth and width to mask to fill up the whole screen
$('#mask').css({'width':maskWidth,'height':maskHeight});

//transition effect
$('#mask').fadeIn(500);
$('#mask').fadeTo("slow",0.9);

//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();

//Set the popup window to center
//$(id).css('top', winH/2-$(id).height()/2);
$(id).css('left', winW/2-$(id).width()/2);

//transition effect
$(id).fadeIn(1000);

//if close button is clicked
$('.window .close').click(function (e) {
//Cancel the link behavior
e.preventDefault();

$('#mask').hide();
$('.window').hide();
});

//if mask is clicked
/*$('#mask').click(function () {
$(this).hide();
$('.window').hide();
}); */

}, 200);
}

关于javascript - adblock 处于事件状态时显示弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39288579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com