我有以下代码来获取查询字符串值并返回不同的链接,具体取决于用户选择的过滤器(使用查询字符串重新加载页面)。
如果用户选择过滤器并重新加载页面,则可以正常工作。但是,第一次加载页面时没有查询字符串,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也不会中断?
答案 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[...]
}