» »

[JavaScript] postMessage in IE problem

[JavaScript] postMessage in IE problem

t3hn0 ::

Torej, delam nek cross site talk med dvema stranema, naceloma vse spila v testni fazi (basic pogovor med stranema).
Problem se pojavi ko na poklicani strani v bindani metodi poklicem ajax (seveda se ta problem se pojavi le v IE). Za predstavo, koda iz strani ki jo poklicem in iz katere pricakujem odgovor:

function bindEvent(eventName, eventHandler) {
	if(window.addEventListener)
		window.addEventListener(eventName, eventHandler, false); 
	else if(window.attachEvent) {
		window.attachEvent('on'+eventName, eventHandler);
	} else if(document.attachEvent) {
		document.attachEvent('on'+eventName, eventHandler);
	}
}

function askMe(ev) {
	$.post('process_request.php', {'r':ev.origin,'p':ev.data}, function(reply) {
		ev.source.postMessage(reply, ev.origin);
	});
}

bindEvent('message', askMe);


Ja, zadeva je pripeljala do tega da sem zaradi tega vkljucil tudi jQuery in poiskusil z njegovim ajax klicem a zadeva je ista. Zgodi se sledece, da v vrstici 11 in 12 parameter "ev" nosi vse vrednosti ki jih mora, po izvedbi ajax klica, pa "ev" ne obstaja vec (s tem da $.post() vrne pricakovan rezultat). Torej do ",function(reply) {" obstaja, potem pa ne vec.
Prvotno sem imel napisan brez jQueryja, zadeva je ista.

Seveda ni potrebno omeniti da v Crome, FF, Operi dela pricakovano:)
^.^

carota ::

Na jQuery post imaš callbacks .done(), .fail(), .always(), morda dobiš od njih še kakšen namig.
var jqxhr = $.post("example.php", function() {
     alert("success");
})
.done(function() { alert("second success"); })
.fail(function() { alert("error"); })
.always(function() { alert("finished"); });

t3hn0 ::

Problem je ker to se vse izvede. Od zahtevane skripte dobi odgovor, a potem izbrise spremenljivke v funkciji iz katere sem poklical ajax (medtem ko replyData nosi odgovor).

Da je zadeva se bolj fletna sem probal se na drug nacin:
1. torej zgornji predlog, sem realiziral v svoji funkciji ki pac dobi potrebne parametre, te preda klicu $.post. Klic se izvede, dobim rezultat, ampak ko ga vrnem v funkcijo iz katere sem jo klical, je rezultat "null". Parametri v prvi funkciji ostanejo nedotaknjeni a sedaj ni rezultata
2. ce poiskusim implementirati to resitev v eno samo funkcijo je problem dokaj isti kot sem ga opisal na zacetku.
^.^


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Slo-Tech userscripts

Oddelek: Izdelava spletišč
175174 (2626) jype
»

C# - runtime generiranje in klicanje kontrol

Oddelek: Programiranje
71195 (951) stalker
»

C#, TextBox in PopUp forma

Oddelek: Programiranje
61103 (997) MarCar
»

Prosim za predloge in pripombe

Oddelek: Izdelava spletišč
322122 (1265) msjr
»

[Visual C#] posodabljanje polja

Oddelek: Programiranje
111646 (1466) iggy1

Več podobnih tem