如何在访问网站时创建自动弹出窗口
How to create auto popup when I access a website
当我访问在 Shopif 中开发的网上商店时,我试图创建一个自动弹出窗口
<SCRIPT TYPE="text/javascript">
function popup(mylink, windowname) {
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string') href=mylink;
else href=mylink.href;
window.open(href, windowname, 'width=400,height=200,scrollbars=yes');
return false;
}
</SCRIPT>
<BODY onLoad="popup('autopopup.html', 'ad')">
我有上面的弹出窗口代码 Windows 自动打开。但是,我需要有关如何进行这项工作的帮助,这是我尝试在 https://petit-tapis.co.uk
上进行工作的网站
提前致谢
值得庆幸的是,现代浏览器可以防止这种行为发生。
任何 window.open
必须仅作为用户触发事件的直接结果发生 - 例如鼠标单击或类似事件。
正如@Scopey 所说,现代浏览器会阻止这种行为自动发生。但是,您可以添加点击,或者如果您希望人们在执行任何其他操作之前先采取行动,您可以添加一个覆盖层来阻止任何其他功能(但我可以告诉你,这会破坏用户体验)。
也许再说说你的目标是什么。为什么要打开这个额外的 window?这样做有什么好处(你和用户从中得到了什么)?
编辑:请参阅下面我的评论。我还整理了一个非常简单的版本:https://jsfiddle.net/uthhvu8d/
HTML:
<div class="wrapper">
<div class="overlay">
<form action="">
<input type="text">
<input type="text">
<button>Submit</button>
</form>
</div>
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maxime, inventore esse aliquam nostrum? Cupiditate provident, delectus, minus voluptatum natus fugiat.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus temporibus vitae quibusdam maxime natus fugiat quis amet sed perferendis quod.</p>
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laboriosam nostrum consequatur animi quod rem eos nihil obcaecati repellat. At, accusamus.</p>
</div>
CSS:
.wrapper {
position: relative;
}
.overlay {
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.5);
color: #fff;
display: none;
}
JS:
function showOverlay() {
$('.overlay').show()
}
setTimeout(showOverlay, 2000)
正如@Scopey 所说,浏览器会阻止您打开弹出窗口 window 但是您可以使用 HTML5 对话框并且浏览器中的对话框覆盖有播放功能,您甚至可以打开它模型,如果您wanted 需要更长的时间才能让它发挥作用,但这对你来说是个好消息
<dialog id="dialog">
<iframe src="autopopup.html" />
</dialog>
当我访问在 Shopif 中开发的网上商店时,我试图创建一个自动弹出窗口
<SCRIPT TYPE="text/javascript">
function popup(mylink, windowname) {
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string') href=mylink;
else href=mylink.href;
window.open(href, windowname, 'width=400,height=200,scrollbars=yes');
return false;
}
</SCRIPT>
<BODY onLoad="popup('autopopup.html', 'ad')">
我有上面的弹出窗口代码 Windows 自动打开。但是,我需要有关如何进行这项工作的帮助,这是我尝试在 https://petit-tapis.co.uk
上进行工作的网站提前致谢
值得庆幸的是,现代浏览器可以防止这种行为发生。
任何 window.open
必须仅作为用户触发事件的直接结果发生 - 例如鼠标单击或类似事件。
正如@Scopey 所说,现代浏览器会阻止这种行为自动发生。但是,您可以添加点击,或者如果您希望人们在执行任何其他操作之前先采取行动,您可以添加一个覆盖层来阻止任何其他功能(但我可以告诉你,这会破坏用户体验)。
也许再说说你的目标是什么。为什么要打开这个额外的 window?这样做有什么好处(你和用户从中得到了什么)?
编辑:请参阅下面我的评论。我还整理了一个非常简单的版本:https://jsfiddle.net/uthhvu8d/
HTML:
<div class="wrapper">
<div class="overlay">
<form action="">
<input type="text">
<input type="text">
<button>Submit</button>
</form>
</div>
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maxime, inventore esse aliquam nostrum? Cupiditate provident, delectus, minus voluptatum natus fugiat.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minus temporibus vitae quibusdam maxime natus fugiat quis amet sed perferendis quod.</p>
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laboriosam nostrum consequatur animi quod rem eos nihil obcaecati repellat. At, accusamus.</p>
</div>
CSS:
.wrapper {
position: relative;
}
.overlay {
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.5);
color: #fff;
display: none;
}
JS:
function showOverlay() {
$('.overlay').show()
}
setTimeout(showOverlay, 2000)
正如@Scopey 所说,浏览器会阻止您打开弹出窗口 window 但是您可以使用 HTML5 对话框并且浏览器中的对话框覆盖有播放功能,您甚至可以打开它模型,如果您wanted 需要更长的时间才能让它发挥作用,但这对你来说是个好消息
<dialog id="dialog">
<iframe src="autopopup.html" />
</dialog>