Or you could use and iframe, then use javascript to change the source of the page.eg - this is the index page
<!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"><head><title>untitled</title><script language="javascript" type="text/javascript">//<![CDATA[function changeSrc(page){ document.getElementById("content").src= page}function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x;}function wm_SetDivText(theObj,x,theText) { //Modification of MM_setTextOfLayer if ((obj=MM_findObj(theObj))!=null) with (obj) if (document.layers) {document.write(unescape(theText)); document.close();} else innerHTML = unescape(theText);}//]]></script></head><body><table width="664" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td valign="top"><iframe frameborder="0" height="310px" id="content" name="content" src="link1.htm" width="405px" scrolling="yes"></iframe></td> <td valign="top"><a href="#" onclick="changeSrc('link1.htm')">link 1</a><br /> <a href="#" onclick="changeSrc('link2.htm')">link2</a></td> </tr></table></body></html>
this is the code for the other pages
<!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"><head><title>blah</title></head><body class="internalPage"><table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td align="left"><p align="justify">This is link 1 </p></td> </tr></table></body></html>