gpt4 book ai didi

javascript - 为某些子页面触发 onbeforeunload

转载 作者:行者123 更新时间:2023-12-03 04:11:05 28 4
gpt4 key购买 nike

我对 JavaScript 还很陌生。我有一个简单的 onbeforeunload 函数,当前适用于所有页面,我希望它为某些子页面(#clients、#products、#news)激活,但不适用于我的域(index.html)的第一个子页面。我想避免将脚本放在每个子页面中,而是希望在 onbeforeunload 函数触发之前使用条件语句来检测子页面的名称。我当前的代码如下:

    window.onbeforeunload = function(event) {
event.returnValue = "You have unsaved work";
};

我知道我需要以某种方式使用 window.location.href,但还没有弄清楚。我尝试使用下面的代码来获取 url 或每个站点,然后想将其输入到 case 语句中,返回了 url,但 case 中的代码不起作用:

document.getElementById("demo").innerHTML =
"Page location is " + window.location.href;

案例代码:

<script>
var text;
switch (window.location.href) {
case "http://mydomain/#/clients":
text = 1;
break;
case "http://mydomain/#/products/":
text = 2;
break;
case "http://mydomain/#/news":
text = 3;
break;
default
text = 4;
break;
}
document.getElementById("demo").innerHTML = "Number is " + text;
</script>

谢谢

最佳答案

“window.location.href”返回整个URL,请改用location.pathname。另外,请确保将路径名(包括扩展名)添加到 pathsToAddTheScript 数组中。

试试这个。

var pathsToAddTheScript = ['clients', 'products'];

if(window.location.pathname in pathsToAddTheScript) {
window.onbeforeunload = function(event) {
event.returnValue = "You have unsaved work";
};
}

关于javascript - 为某些子页面触发 onbeforeunload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44330352/

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