【问题标题】:No working time showing Js when close webpage关闭网页时没有工作时间显示Js
【发布时间】:2013-12-10 23:55:41
【问题描述】:
pageOpen = new Date();

function bye() {
    pageClose = new Date();
    minutes = (pageClose.getMinutes() - pageOpen.getMinutes());
    seconds = (pageClose.getSeconds() - pageOpen.getSeconds());
    time = (seconds + (minutes * 60));
    if (time == 1) {
        time = (time + " second");
    } else {
        time = (time + " seconds");
    }
    alert('you stay here' + time + '.welcome back!');
}

调用它

<BODY onUnload="bye()" >

当我试图关闭它,但没有显示。

【问题讨论】:

  • 请格式化您的代码。
  • 你在哪里称呼它?
  • 弹出窗口阻止程序或 Chrome 只是忽略代码 onunload 以使页面更快。通过超时调用代码可以正常工作。
  • 那我该如何改变呢?还是不做?
  • Chrome 控制台:“卸载期间被阻止的警报('你留在这里 1 秒。欢迎回来!')。”

标签: javascript time


【解决方案1】:

卸载事件不适用于所有浏览器。 http://www.w3schools.com/jsref/event_onunload.asp (特别是不在 chrome 或 opera 上)

如果您想在未保存更改时显示消息以确认或离开页面,就像某些页面所做的那样 - 您可以随时使用 beforeunload 事件

<!DOCTYPE html>
<html>
<head>
<script>
pageOpen = new Date();

function bye() {
    pageClose = new Date();
    minutes = (pageClose.getMinutes() - pageOpen.getMinutes());
    seconds = (pageClose.getSeconds() - pageOpen.getSeconds());
    time = (seconds + (minutes * 60));
    if (time == 1) {
        time = (time + " second");
    } else {
        time = (time + " seconds");
    }
    return ('you stay here' + time + '.welcome back!');
}
</script>
</head>

<body onbeforeunload="return bye()">

<h1>Welcome to my Home Page</h1>
<p>Close this window or press F5 to reload the page.</p>

</body>
</html>

【讨论】:

  • 你知道如何在弹出窗口中添加分钟和小时吗?
  • @user3089026 我不明白你的问题 - 你能给我一个弹出消息应该是什么样子的例子吗?
  • 现在,代码只显示警报上的秒数,我想要它的分钟和小时。
【解决方案2】:

卸载的格式为:

<body onunload="myFunction()"> 

【讨论】:

  • 把警报放到你的 bye() 函数的第一行。调试你知道的!!
  • 当它是一个属性时,浏览器不会区分大小写,而是对其进行规范化。
【解决方案3】:
$( window ).unload(bye);

希望有帮助)

【讨论】:

  • jQuery 标签在哪里? -1
  • 不是每个人都使用 jQuery
猜你喜欢
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
相关资源
最近更新 更多