如何使用javascript获取查询字符串,如果没有查询字符串

时间:2010-07-06 05:58:54

标签: javascript

我有以下代码来获取查询字符串值并返回不同的链接,具体取决于用户选择的过滤器(使用查询字符串重新加载页面)。

如果用户选择过滤器并重新加载页面,则可以正常工作。但是,第一次加载页面时没有查询字符串,javascript会导致某些图像/链接无法显示。代码

var goPage=new Array(6);

var search = location.search;
search = search.replace(/\?/,'');
var searchAttributes = search.split('&');

for(var no=0;no<searchAttributes.length;no++){
    var items = searchAttributes[no].split('=');
    eval("var "+items[0]+" = '"+items[1]+"';");
}
queryString = SelectedID;

var goPage=new Array(6);

if (queryString == "")
{
goPage[0]='https://company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Objective%20Status.aspx';
goPage[1]='https://company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Priorities%20Status.aspx';
goPage[2]='https://company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Milestone%20Status.aspx';
goPage[3]='https://company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Moved%20to%20Green%20Last%2030.aspx';
goPage[4]='https://company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Moved%20to%20Amber%20Last%2030.aspx';
goPage[5]='https://company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Moved%20to%20Red%20Last%2030.aspx';
}

if (queryString == 25)
{
goPage[0]='https://company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Objective%20Status.aspx?View={D2ADE53F-8C47-4787-80AE-6F90C84206B5}&FilterField1=Strategic_x0020_ObjectiveFilterValue1=A.%20Industry%20leadership%20through%20technical%20excellence%2C%20self%20performance%2C%20safety%20and%20environment';

goPage[1]='company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Priorities%20Status.aspx?SortField=Strategic_x0020_Objective&SortDir=Asc&View={9AE43100-E1E7-4705-A4C5-D8FE7326714E}&FilterField1=Strategic_x0020_Objective&FilterValue1=A.%20Industry%20leadership%20through%20technical%20excellence%2C%20self%20performance%2C%20safety%20and%20environment';

goPage[2]='company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Milestone%20Status.aspx?View={F9DFB655-BB78-4A66-8F65-98D37B07B9B5}&FilterField1=Strategic_x0020_Objective&FilterValue1=A.%20Industry%20leadership%20through%20technical%20excellence%2C%20self%20performance%2C%20safety%20and%20environment';

goPage[3]='company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Moved%20to%20Green%20Last%2030.aspx';

goPage[4]='company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Moved%20to%20Amber%20Last%2030.aspx?View={E2142842-9815-4FFC-9297-C0F0D8E93796}&FilterField1=Strategic_x0020_ObjectiveFilterValue1=A.%20Industry%20leadership%20through%20technical%20excellence%2C%20self%20performance%2C%20safety%20and%20environment';

goPage[5]='company.sharepoint.apac.microsoftonline.com/Lists/Strategic%20Items/Moved%20to%20Red%20Last%2030.aspx';
}

有关如何更改查询字符串的方式的任何建议,如果没有javascript也不会中断?

1 个答案:

答案 0 :(得分:4)

你可以使用这样的东西:

GetQueryStringValue:function(url, name) 
{       
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( url );
    if( results == null )
        return undefined;       
    return results[1];      
};

然后你可以这样做:

var SelectedID = GetQueryStringValue(window.location.href, 'SelectedID');
if(SelectedID)
{
   if(SelectedID==25)
   {
       //goPage[...]
   }
}
else
{
    //SelectedID is undefined
    //goPage[...]
}
相关问题