如果window.location.href里面有'sometext' - 这样做

时间:2011-06-02 12:20:14

标签: javascript jquery ajax window location

目前正致力于使用ajax进行某些分页。我想要做的是在某些链接的末尾添加类似referal = 3的内容,然后当他们转到该链接时,我将插入一个带窗口位置的后退按钮,例如:

用户使用ajax分页,转到第3页我会在链接的末尾添加?ref = 3或者其他东西,所以它会这样:

http://foo.com/somepage/?ref=3

(不确定这是否是一种正确的做法)

然后,用户点击该链接,我将在该页面上添加一个带有该链接的后退按钮。

因此当他们使用生成的按钮返回主页时,window.location.href将是:

http://foo.com?ref=3

这个想法是,当他们点击后退按钮时,ajax分页将加载到第3页。

我不确定如何解释这一点,但是有谁知道如何根据window.location.href做一个条件语句?

3 个答案:

答案 0 :(得分:3)

要查找url是否包含某些字符串:

if (document.location.href.search("ref=3")!=-1){
 alert('got ref=3'); 
}

答案 1 :(得分:1)

您可以使用此函数来获取查询字符串的一部分:

function getQueryString(variable){
    // Grab the query string part of the URL (everything after the ?)
    var query = window.location.search.substring(1);

    // If you don't specify which value you want, return the whole thing
    if(!variable) return query;

    // Split the query string to key=value pairs into an array
    var vars = query.split('&');

    // Loop through them to find the one we're looking for
    for (var i = 0; i < vars.length; i++){
        // Split key and value
        var pair = vars[i].split('=');

        // If the key matches our parameter, return the value
        if (pair[0] == variable){
            return pair[1];
        }
    }
    // If not found, return empty string
    return '';
}

然后您可以通过以下方式将值作为字符串获取:

var value = getQueryString('ref');

// Conditional code if it is a certain value, do something
if(value === '3'){
    // Do something
}

您也可以使用parseInt()

将其作为数字
var value = parseInt(getQueryString('ref'), 10);

if(value === 3){
    // Do something
}

答案 2 :(得分:0)

我不确定我完全理解你想做什么,但听起来你想要研究使用location.hash属性。

使用jQuery插件,例如hashchange,您可以向浏览器历史记录添加ajax调用。此外,所有页面都是可收藏的。这是一个非常广泛的主题,但我提供的链接应该让你开始。