This chunk of code in JavaScript gets all of the view in a SharePoint site and puts them in a drop down on a web page. When a user selects the view on the drop down the browser navigates to that view.
<script language="ecmascript" type="text/ecmascript">
if(typeof jQuery=='undefined'){
var jQPath = '/_layouts/1033/custom/jquery.min.js'
document.write('<script src="',jQPath,'" type="text/javascript"><\/script>');
}
var web = null;
var listCollection =null;
var list = null;
var viewCollection =null;
function getViews() {
var clientContext = new SP.ClientContext.get_current();
if (clientContext != undefined && clientContext != null) {
this.web = clientContext.get_web();
this.listCollection = web.get_lists();
this.list = listCollection.getByTitle("Rem Reduction Initiative Catalog");
this.viewCollection = list.get_views();
clientContext.load(this.viewCollection);
clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
}
}
function onQuerySucceeded() {
var viewName ='Views: \n';
var viewsEnumerator =this.viewCollection.getEnumerator();
while (viewsEnumerator.moveNext()) {
var view = viewsEnumerator.get_current();
//viewName += view.get_title() + '\n';
var viewTitle = view.get_title();
if(viewTitle != ''){
$('#lstViews').append($('<option>', {
value: 'https://xxxxx/' + view.get_serverRelativeUrl(),
text : view.get_title(),
onClick: naviTo()
}));
}
}
//$("#lstViews" ).change(naviTo());
//alert(viewName);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
function naviTo()
{
var strLink = $('#lstViews').val();
//console.log(strLink);
if(strLink != 'SelectView')
window.location.href = strLink;
}
</script>
<select id="lstViews" onClick='naviTo()'>
<option value='SelectView'>Select a View</option>
</select>