Results 1 to 4 of 4

Thread: Problem With Dynamic Web Page!!!

  1. #1
    Join Date
    Jul 2008
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Smile Problem With Dynamic Web Page!!!

    Hello everyone,

    I am trying to create a Dynamic web page like the one shown here:

    http://www.dynamicdrive.com/dynamici...jaxcontent.htm

    One of the pages that I want to load into this is an index.htm file that has links to other .htm files. ex. <link id="" href="">. Because of this the index.htm file WONT load in the subscreen. I have tried editing the loadobjs function to link the external .htm pages with the index.htm page, but so far I have been unsuccessful. If anyone can please help me figure this out, that would be great.

    the code that i have is shown below:

    HTML 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" lang="en" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Ajax Rotating Includes Script</title>
    <script type="text/javascript">
    
    /***********************************************
    * Dynamic Ajax Content- © 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
    ***********************************************/
    
    var loadedobjects=""
    var rootdomain="http://"+window.location.hostname
    
    function ajaxpage(url, containerid){
    	var page_request = false
    	if (window.XMLHttpRequest) // if Mozilla, Safari etc
    		page_request = new XMLHttpRequest()
    	else if (window.ActiveXObject){ // if IE
    		try {
    			page_request = new ActiveXObject("Msxml2.XMLHTTP")
    		} 
    		catch (e){
    			try{
    				page_request = new ActiveXObject("Microsoft.XMLHTTP")
    			}
    			catch (e){}
    		}
    	}
    	else
    		return false
    	page_request.onreadystatechange=function(){
    		loadpage(page_request, containerid)
    	}
    	page_request.open('GET', url, true)
    	page_request.send(null)
    }
    
    function loadpage(page_request, containerid){
    	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    		document.getElementById(containerid).innerHTML=page_request.responseText
    }
    
    function loadobjs(){
    	if (!document.getElementById)
    	return
    	for (i=0; i<arguments.length; i++){
    		var file=arguments[i]
    		var fileref=""
    		if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
    			if (file.indexOf(".js")!=-1){ //If object is a js file
    				fileref=document.createElement('script')
    				fileref.setAttribute("type","text/javascript");
    				fileref.setAttribute("src", file);
    			}
    			else if (file.indexOf(".css")!=-1){ //If object is a css file
    				fileref=document.createElement("link")
    				fileref.setAttribute("rel", "stylesheet");
    				fileref.setAttribute("type", "text/css");
    				fileref.setAttribute("href", file);
    			}
    			else if (file.indexOf(".htm")!=-1) {
    				fileref=document.createElement("link")
    				fileref.setAttribute("id", "shLink");
    				fileref.setAttribute("href", file);
    			}
    		}
    		if (fileref!=""){
    			document.getElementsByTagName("head").item(0).appendChild(fileref)
    			loadedobjects+=file+" " //Remember this object as being already added to page
    		}
    	}
    }
    
    </script>
    
    <style type="text/css">
    	#leftcolumn{
    	float:left;
    	width:150px;
    	height: 400px;
    	border: 3px solid black;
    	padding: 5px;
    	padding-left: 8px;
    
    	}
    
    	#leftcolumn a{
    	padding: 3px 1px;
    	display: block;
    	width: 100%;
    	text-decoration: none;
    	font-weight: bold;
    	border-bottom: 1px solid gray;
    	}
    
    	#leftcolumn a:hover{
    	background-color: #FFFF80;
    	}
    
    	#rightcolumn{
    	float:left;
    	width:550px;
    	min-height: 400px;
    	border: 3px solid black;
    	margin-left: 10px;
    	padding: 5px;
    	padding-bottom: 8px;
    	}
    
    	* html #rightcolumn{ /*IE only style*/
    	height: 400px;
    	}
    </style>
    </head>
    
    <body>
    
    <div id="leftcolumn">
    <a href="javascript:ajaxpage('ajaxfiles/external.htm', 'rightcolumn');">Porsche Page</a>
    <a href="javascript:ajaxpage('ajaxfiles/external2.htm', 'rightcolumn');">Ferrari Page</a>
    <a href="javascript:ajaxpage('ajaxfiles/external3.htm', 'rightcolumn');">Aston Martin Page</a>
    <a href="javascript:ajaxpage('ajaxfiles/Tape Drive inventory.htm', 'rightcolumn');loadobjs('ajaxfiles/Tape Drive inventory_files/sheet001.htm','ajaxfiles/Tape Drive inventory_files/sheet002.htm','ajaxfiles/Tape Drive inventory_files/tabstrip.htm','ajaxfiles/Tape Drive inventory_files/stylesheet.css')">EXP</a>
    
    <div style="margin-top: 2em">Load CSS & JS files</div>
    <a href="javascript:loadobjs('ajaxfiles/style.css', 'ajaxfiles/tooltip.js');">Load "style.css" and "tooltip.js"</a>
    
    </div>
    
    <div id="rightcolumn"><h3>Choose a page to load.</h3></div>
    <div style="clear: left; margin-bottom: 1em"></div>
    
    </body>
    
    </html>
    THANK YOU

  2. #2
    Join Date
    Jul 2006
    Posts
    497
    Thanks
    8
    Thanked 70 Times in 70 Posts

    Default

    Do you get an error or anything that could help diagnose your problem? Better yet, can we get a link to the actual page, or at least a working one that displays the bug?

    Why do you use LINK tags to point at HTML pages?

    Why do you dump an entire HTML page into a DIV rather than only taking the relevant pieces? That will certainly make your page invalid and may break some stuff.

  3. #3
    Join Date
    Sep 2007
    Location
    The Netherlands
    Posts
    1,881
    Thanks
    49
    Thanked 266 Times in 258 Posts
    Blog Entries
    56

    Default

    What you want is not possible with this script (as it is). It can only be used to include external content into a div without changing the URL of the page.
    ===
    Arie Molendijk.

  4. #4
    Join Date
    Sep 2007
    Location
    The Netherlands
    Posts
    1,881
    Thanks
    49
    Thanked 266 Times in 258 Posts
    Blog Entries
    56

    Default

    What you could do, however, is making all your pages have the same head section (with the ajax-script and the styles) and the same links in the body, and then do different onloads, for instance: <body onload="javascript:ajaxpage('ajaxfiles/external1.htm', 'rightcolumn');"> for page 1, <body onload="javascript:ajaxpage('ajaxfiles/external2.htm', 'rightcolumn');"> for page 2, etc.
    ===
    Arie.
    Last edited by molendijk; 07-18-2008 at 08:34 PM. Reason: Correction

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •