davelearning Posted January 7, 2011 Share Posted January 7, 2011 Hi All, I am not sure if this is a javascript or ajax problem to be honest. The basics of it are this, I am using this script to load a page into a div using ajax <script type="text/javascript"> var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no) var loadedobjects="" var rootdomain="http://"+window.location.hostname var bustcacheparameter="" 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) } if (bustcachevar) //if bust caching of external page bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime() page_request.open('GET', url+bustcacheparameter, 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); } } if (fileref!=""){ document.getElementsByTagName("head").item(0).appendChild(fileref) loadedobjects+=file+" " //Remember this object as being already added to page } } } </script> and I launch my links like: <a href="javascript:ajaxpage('managea.php', 'content');">Manage Profile</a> Which works fine. I also am using greybox redux (jquery lib) to load a local page into a lightbox type thing, for this is I am using: /* Greybox Redux * Required: http://jquery.com/ * Written by: John Resig * Based on code by: 4mir Salihefendic (http://amix.dk) * License: LGPL (read more in LGPL.txt) */ var GB_DONE = false; var GB_HEIGHT = 400; var GB_WIDTH = 400; function GB_show(caption, url, height, width) { GB_HEIGHT = height || 400; GB_WIDTH = width || 400; if(!GB_DONE) { $(document.body) .append("<div id='GB_overlay'></div><div id='GB_window'><div id='GB_caption'></div>" + "<img src='close.gif' alt='Close window'/></div>"); $("#GB_window img").click(GB_hide); $("#GB_overlay").click(GB_hide); $(window).resize(GB_position); GB_DONE = true; } $("#GB_frame").remove(); $("#GB_window").append("<iframe id='GB_frame' src='"+url+"'></iframe>"); $("#GB_caption").html(caption); $("#GB_overlay").show(); GB_position(); if(GB_ANIMATION) $("#GB_window").slideDown("slow"); else $("#GB_window").show(); } function GB_hide() { $("#GB_window,#GB_overlay").hide(); } function GB_position() { var de = document.documentElement; var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; $("#GB_window").css({width:GB_WIDTH+"px",height:GB_HEIGHT+"px", left: ((w - GB_WIDTH)/2)+"px" }); $("#GB_frame").css("height",GB_HEIGHT - 32 +"px"); } and launching like so: <script type="text/javascript"> var GB_ANIMATION = true; $(document).ready(function(){ $("a.newalbum").click(function(){ var t = this.title || $(this).text() || this.href; GB_show(t,this.href,470,600); return false; }); }); </script> <a href="newalbum.php" title="Add Album" class="newalbum"><img src="images/nalbum.png" width="120" height="120" alt="New Album"></a> Now both work seperatly just fine, but say I use the load into div to load a page called newpage.php, and then when I click on the image above to load the item into the box it just opens as a new page instead of opening newalbum.php into the box. I hope this is clear enough to understand! Quote Link to comment https://forums.phpfreaks.com/topic/223707-cant-load-javascript-after-ajax-page-call/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.