如何在访问网站时创建自动弹出窗口

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>