Jump to content
php.lv forumi

sadarbība starp logiem (popup un statisko)


Recommended Posts

Posted

Ir dokuments, no kura var atvēta uzlecošo logu. Uzlecošajā logā izdara šādas tādas lietas un kad to aizver, pamata logā parādās izmaiņas, neizmantojot refrešu!

 

Talkā ņemam to pašu nodrāzto http://homepage.mac.com/kevinmarks/staticjah.html (Static JAH). Nav nekādas problēmas popapa logā uzģenerēt

kautko tādu:

 

jah('fails.php?izmaiņas=blblblblblbl,'target');

 

ielikt to onUnload eventā, lai tas palaižās aizvetoties pop up logam...bet protams šī rinda nemainīs saturu pamata lapā, bet gan pop up logā, jah('fails.php?izmaiņas=blblblblblbl,'target'); . Kā pārformēt to lietu, lai sas tiktu padots uz pamata lapu.

 

ir idejas.

šāds izskatās tas Static JAH failiņš.

 

function jah(url,target) {
// native XMLHttpRequest object
document.getElementById(target).innerHTML = 'sending...';
if (window.XMLHttpRequest) {
	req = new XMLHttpRequest();
	req.onreadystatechange = function() {jahDone(target);};
	req.open("GET", url, true);
	req.send(null);
// IE/Windows ActiveX version
} else if (window.ActiveXObject) {
	req = new ActiveXObject("Microsoft.XMLHTTP");
	if (req) {
		req.onreadystatechange = function() {jahDone(target);};
		req.open("GET", url, true);
		req.send();
	}
}
}	

function jahDone(target) {
// only if req is "loaded"
if (req.readyState == 4) {
	// only if "OK"
	if (req.status == 200) {
		results = req.responseText;
		document.getElementById(target).innerHTML = results;
	} else {
		document.getElementById(target).innerHTML="jah error:\n" +
			req.statusText;
	}
}
}

 

 

visticamāk, ka jāmaina šīs document.getElementById(target).innerHTML vietas. rakos netā, bet skaidrību tādu neieguvu. ir kādas idejas?

Posted (edited)

ok, js failu pamainīju, īstenība īzī, sametu priekšā opener. (bija tāda aizdoma ka k-kas līdzīgs jādara, bet tajā pasša lapā rakājoties nekādi neuzskrēju virsū tam).

nomainīju uz šādu.

 

function jah(url,target) {
// native XMLHttpRequest object
opener.document.getElementById(target).innerHTML = 'sending...';
if (window.XMLHttpRequest) {
	req = new XMLHttpRequest();
	req.onreadystatechange = function() {jahDone(target);};
	req.open("GET", url, true);
	req.send(null);
// IE/Windows ActiveX version
} else if (window.ActiveXObject) {
	req = new ActiveXObject("Microsoft.XMLHTTP");
	if (req) {
		req.onreadystatechange = function() {jahDone(target);};
		req.open("GET", url, true);
		req.send();
	}
}
}

function jahDone(target) {
// only if req is "loaded"
if (req.readyState == 4) {
	// only if "OK"
	if (req.status == 200) {
		results = req.responseText;
		opener.document.getElementById(target).innerHTML = results;
	} else {
	   opener.document.getElementById(target).innerHTML="jah error:\n" +
			req.statusText;
	}
}
}

 

ja iemetu popup logā saiti:

 

<a href="java script:jah('content_switch.php','images');">update</a>

 

tad no nospiežot vis vajadzīgais apdeitojās un viss bumbās.

 

BET.

 

ja izdaros šitādi:

 

<body onUnload="java script:jah('content_switch.php','images');" >

 

tad īpaši nekas negrib strādāt. t.i. aizverot logu viss uzkarās uz "sending...".

Edited by born
Posted (edited)

Būtu labi, ja kāds kurš nojauš problēmas atrisinājumu dotu vismaz kādu pavedienu...

 

Paldies, sam pridumal, ieliku attiecīgajā vietā iekš onload, nevis onunload...iznāk par foršāk nekā gribēju :)

Edited by born
Posted

onload events nostrādā kad lapa ir pilnībā ielādēta, bet onunload, ja nemaldos kad tu maini location.. resp taisi browseru ciet vai spied kādu linku.

un novāc to "java script:" priekšā. tas nav vajadzīgs.

Posted
onunload, ja nemaldos kad tu maini location.. resp taisi browseru ciet vai spied kādu linku.

Skjiet ka uz jaunajiem brauzeriem tas pat ir speciali jaiesleedz, preciizaak Jaizsleedz Popup Blokeris..

:)

×
×
  • Create New...