在用zDialog 的时候,遇到过http下正常,换成https后,页面404

首先疑点是在http下面是正常的,换成https 页面打开报404

但是单独访问这个弹出框的页面,也是正常能显示的。

后发现请求路径被zDialog 加入了前缀,形成了两层目录,导致404,于是想到是插件不支持https。

 

经过查询后,将 js源码在线解压缩后   

在这个函数中 Dialog.prototype.displacePath, 加入  || this.URL.substr(0, 8)=="https://"  代码,完美解决

源代码:

Dialog.prototype.displacePath = function() {
    if (this.URL.substr(0, 7) == "http://"  || this.URL.substr(0, 1) == "/" || this.URL.substr(0, 11) == "javascript:") {
        return this.URL
    } else {
        var a = this.URL;
        var b = window.location.href;
        b = b.substring(0, b.lastIndexOf("/"));
        while (a.indexOf("../") >= 0) {
            a = a.substring(3);
            b = b.substring(0, b.lastIndexOf("/"))
        }
        return b + "/" + a
    }
};

修改后:

Dialog.prototype.displacePath = function() {
    if (this.URL.substr(0, 7) == "http://" || this.URL.substr(0, 8)=="https://" || this.URL.substr(0, 1) == "/" || this.URL.substr(0, 11) == "javascript:") {
        return this.URL
    } else {
        var a = this.URL;
        var b = window.location.href;
        b = b.substring(0, b.lastIndexOf("/"));
        while (a.indexOf("../") >= 0) {
            a = a.substring(3);
            b = b.substring(0, b.lastIndexOf("/"))
        }
        return b + "/" + a
    }
};

 

你可能感兴趣的:(html)