对某些子页面进行onbeforeunload fire

时间:2017-06-02 13:39:53

标签: javascript onbeforeunload

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

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

我知道我需要以某种方式使用window.location.href,但尚未弄明白。我尝试使用下面的代码来获取网址或每个网站,然后想将其输入到一个案例陈述中,返回了网址,但是案例中的代码不起作用:

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>

谢谢

1 个答案:

答案 0 :(得分:1)

“window.location.href”会返回整个var f = navigator.userAgent.search("Firefox"); if (f > -1) { console.log("Firefox"); ,而是使用URL。另外,请确保将路径名称(包括扩展名)添加到location.pathname数组。

试试这个。

pathsToAddTheScript