If all pages are to have the same random content this can be done with a session(browser) cookie or for a specified duration cookie.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<style type="text/css">
.group1{
visibility: hidden;
}
</style>
<script type="text/javascript">
/***********************************************
* Random Content Order script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
function randomizeContent(classname,days){
var obj=randomizeContent.collectElementbyClass(classname),days=typeof(days)=='number'||days=='session'?days:-1,ck=randomizeContent.cookie(classname),ck=days=='session'||days>0?ck:false;
var nus=ck?ck.split(','):obj.nus.sort(function() { return 0.5 - Math.random(); });
var tbodyref=obj.ref[0].tagName=="TR"? obj.ref[0].parentNode : {};
for (var i=0; i<obj.ref.length; i++){
if (tbodyref.moveRow){ //if IE
// tbodyref.moveRow(0, Math.round(Math.random()*(tbodyref.rows.length-1)))
}
else {
obj.ref[i].innerHTML=obj.text[nus[i]];
}
obj.ref[i].style.visibility="visible";
}
document.cookie=classname+'='+nus+(typeof(days)=='number'?';expires='+(new Date(new Date().getTime()+days*86400000).toGMTString())+';path=/':'');
}
randomizeContent.cookie=function(nme){
var re=new RegExp(nme+'=[^;]+','i');
if (document.cookie.match(re)){
return document.cookie.match(re)[0].split("=")[1];
}
return null;
}
randomizeContent.collectElementbyClass=function(classname){ //return two arrays containing elements with specified classname, plus their innerHTML content
var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i"); //regular expression to screen for classname within element
var obj={};
obj.ref=[]; //array containing references to the participating contents
obj.text=[]; //array containing participating contents' contents (innerHTML property)
obj.nus=[]; //array containing the array numbers
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (var i=0; i<alltags.length; i++){
if (typeof alltags[i].className=="string" && alltags[i].className.search(classnameRE)!=-1){
obj.ref.push(alltags[i]);
obj.text.push(alltags[i].innerHTML);
obj.nus.push(obj.nus.length);
}
}
return obj;
}
</script></head>
<body>
<div class="group1">
Content 1
</div>
<div class="group1">
Content 2
</div>
<div class="group1">
Content 3
</div>
<div class="group1">
Content 4
</div>
<div class="group1">
Content 5
</div>
<script type="text/javascript">
// parameter 0 = randomize order of contents with DIV class="group1"
// parameter 1 = the days persistence or 'session' (-1 = no persistence)
randomizeContent("group1",1)
</script>
</body>
</html>
Bookmarks