【问题标题】:How to generate popup after some time of user come into site in asp.net用户进入asp.net网站一段时间后如何生成弹出窗口
【发布时间】:2015-12-31 05:57:48
【问题描述】:

我需要在 2 分钟后或浏览用户网站中的两个网页后根据某些数据库条件在 asp.net 的网页上生成弹出窗口,并且无论页面刷新,page_load 即甚至用户刷新页面无关紧要,弹出窗口应该在那个确切时间之后出现,一旦弹出窗口出现,它就不应该出现在同一个会话中。对于这种天气,我需要在 global.asax 中生成新会话来计算时间或计算浏览的页面数或如何实现这一点??

【问题讨论】:

  • 用户设置超时并打开弹出窗口。使用引导模式
  • thnx 回复,如果页面重新加载,setTimeout() 将再次执行,并且会再次弹出?它不应该发生。
  • @saaduu:您将不得不使用一个可访问 javascript 的 cookie,它存储弹出状态标志和倒计时值。
  • @saaduu,一旦弹出,用户点击第二页和第三页。你想让这个弹出窗口在 2 分钟后在第二页和第三页打开吗
  • @Venkatraman "No" 一旦弹出来,它不应该出现在网站的任何页面中

标签: javascript jquery html asp.net global-asax


【解决方案1】:

你有很多条件,让我们谈谈2分钟后显示弹出窗口。

为此,请使用 setInterval Event 的 javascript。

var timerID = setInterval(function() {
// your code goes here...
}, 60 * 1000 * 2);

现在,这将在每 2 分钟后执行一次。如果您只想这样做一次,请通过以下代码取消注册事件。

clearInterval(timerID);

您还可以使用setTimeout、jQuery 的 delay() 函数等等。

请参阅jQuery Documentation 中附加的示例以了解延迟()。 以下是示例代码的主要部分。

$( "div.first" ).slideUp( 300 ).delay( 800 ).fadeIn( 400 );

有关 setTimeout,请参阅 this Example from w3schools

下面是setTimeout的主要部分代码

$(function(){
    setTimeout(function(){ alert("Hello"); }, 3000);
});

现在,您可以将这些 js 逻辑与逻辑背后的代码配对,以获得所有所需的条件。

【讨论】:

  • 延迟不能替代setTimeout。延迟应仅用于基于 jquery 的效果。此信息可以在您在您的回答中提到的 jquery 文档中找到
  • @CerlinBoss 能否请您详细说明一下何时使用 delay()、setTimeout() 和 setInterval()?我不确定什么时候用什么。
  • settimeout 用于一次延迟任务,setinterval 用于连续延迟任务,延迟用于动画排队
  • 您永远不会将 setInterval 用于一次性的事情。也请链接到更好的文档,例如MDN
【解决方案2】:

使用localStorage 作为条件,使用setTimeout 运行一次,但特定于浏览器。

setTimeout( function() {
 if(!localStorage.getItem('isPopupRendered') ) {
  // open your modal.
  console.log('open Modal');
  localStorage.setItem('isPopupRendered', true);
 }
}, 60 * 1000 * 2 );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多