记一次js页面跳转

发表于:2019-08-28 16:42jQuery热度:209喜欢:0

碰到一个需求,软件站的某个页面想要用js做404跳转,但是不想删除cms后台的软件,还想做SEO,不然降低SEO权重
要求是从搜索引擎来的,页面源码还是原来的,但是展示404
直接访问地址URL,跳转真实的404页面

根据页面标题,包含违禁词跳转
根据来路,做真实的404还是假的404

function direct() {
    var illegalKey = ['彩票', '赌博'];
    var title = document.title;
    var where = document.referrer;//来路地址
    var regexpp = /\.(sogou|so|baidu|360|google|sm|yahoo|bing)(\.[a-z0-9\-]+){1,2}\//ig;
    var isFromSeo = regexpp.test(where);
    var isIllegal = false;
    for (var i = 0; i < illegalKey.length; i++) {
        if (title.indexOf(illegalKey[i]) > -1) {
            isIllegal = true
            break;
        }
    }
    if (isIllegal) {
        if (isFromSeo) {
            $("title").html('您访问的页面不存在');
            window.stop ? window.stop() : document.execCommand("Stop");
            $("body").load("/404.html")
        } else {
            window.location.href = "/404.html"
        }
    }
}

比较有意思的就是jquery的load函数,能让body展示某个页面的样式,但是不改变源码
查看相关文档

$(selector).load(url,data,function(response,status,xhr))
参数 描述
url 必需。规定您需要加载的 URL。
data 可选。规定连同请求发送到服务器的数据。
function(response,status,xhr) 可选。规定 load() 方法完成时运行的回调函数。
额外的参数:
response - 包含来自请求的结果数据
status - 包含请求的状态("success"、"notmodified"、"error"、"timeout"、"parsererror")
xhr - 包含 XMLHttpRequest 对象

还是有点意思的