Konuyu görüntüle
IUCODERS FORUM > Programlama > Diğer (COBOL,asp php js..) > AJAX, IFrame ve Firefox ???
Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
05.08.2008-09:44 #50262
Arkadaşlar, AJAX'lı bir sayfa var ve ajax ile bir IFrame'in içeriği değiştiriliyor. Bu işlem sonunda IE iframe'in içeriğini güncelliyor ama Firefox güncellemiyor. Ne yaptıysam otomatik güncellemesini sağlayamadım. Özellikle iframe içindeki bir resmin güncellenmesi lazım ama ne yaptıysam olmadı. Böyle bir durumu daha önce yaşamış çözüm bulmuş kimse var mı? Ya da önerileriniz nedir?





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
05.08.2008-10:19 #50263
Önerim Firefox Firebug'ı kurman ve Ajax kodlarına breakpoint koyup değerleri gözlemen. IE'de çalışan bazı kodlar Firefox'ta çalışmıyor. Aşağıda 2 örnek veriyorum:

Bu kod 1. dropdowna bağlı olarak 2.dropdownu dolduran kodlar arasında:

            newList[i] = nodes.item(i).text; (IE kabul ediyor, firefox'ta çalışmıyor. textContent olmalı)
            if(newList[i] == null)
                newList[i] = nodes.item(i).textContent;


Bu kod da IFrame'i yazdıran kodlar:
        //document.frames['Iframe1'].focus();
        //document.frames['Iframe1'].print();
       //Yukarıdaki 2 satır sadece IE'de çalışırken aşağıdaki 2 satır kod hem IE hem firefox'ta çalışıyor.

        /* firefox ta documentın framei yok. window, top, self, parentin frameleri var. */
        /* id yazamıyorsun. index ile bulabiliyor.*/
        window.frames[0].focus();
        window.frames[0].print();


Belki senin sorunun frame'e id ile ulaşmandır. Index vermen gerekir.

Umarım yardımcı olmuştur. Kolay gelsin.





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
mrflz


avatar
Luleburgaz
admin
Kayıt: 15.06.2006
05.08.2008-11:23 #50266
iframe yerine, pek yerdımcı olur mu bilmiom ama "ajax" kullansan daha kolay ve kullanıslı hem de div ogrenmek daha kolaylaşıyor.





I see the ghosts of navigators but they are lost







Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
05.08.2008-13:20 #50270
sevecen yazdi
 
Önerim Firefox Firebug'ı kurman ve Ajax kodlarına breakpoint koyup değerleri gözlemen. IE'de çalışan bazı kodlar Firefox'ta çalışmıyor. Aşağıda 2 örnek veriyorum:
.............

2. yöntem bana uyuyor gibiydi ama yine olmadı. JS Kodlar hata döndürmeden çalışıyor ama iş görmüyor. Değerlerde de sorun yok ama IFrame'i güncelleyemedim bir türlü. JS kodlarını sayfa yüklenirken çalıştırıyorum. Aslında ajax olduğundan sayfa yenilenirken çalıştırmaya çalışıyorum ama bu kodlarla IFrame'i güncelleyemedim. Aynı kodları bir düğmeden çağırdığımda sorun yok ama sayfa yenilenirken çalışsa da iş görmüyor. Sadece Firefox'da var bu problem.

Son çare olarak karşı tarafın Browser'ı Firefox ise IFrame'i güncelleyen butonu sayfaya yerleştiriyorum. Düğmeye basıldığında JS çalışıyor IFrame sorunsuz güncelleniyor.

Herhalde bunu bir güvenlik önlemi gibi düşünüp yasaklamışlar. Aklıma başka bir şey gelmiyor.

Div kullanmam pek mümkün değil. Projeyi başkası yazmış ve epey karışık bir yapısı var. İçinde de özel bir component var. Baktım da IFrame div'e çevirmeye kalksam 1-2 hafta uğraşırım herhalde.

Önerileriniz için teşekkür ederim.





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
05.08.2008-15:27 #50278
Cash'ten kaynaklanıyor olabilir mi?





Let`s make this world a better place to live !

Yazar
muratk


avatar
Istanbul
Kayıt: 24.03.2006
06.08.2008-22:18 #50328
	function getXMLHTTP() { //fuction to return the xml http object
			 var httprequest=false
			  if (window.XMLHttpRequest) { 
			    httprequest = new XMLHttpRequest();
			    if (httprequest.overrideMimeType) {
			      httprequest.overrideMimeType('text/xml; charset=iso-8859-9')
			    }
			  } else if (window.ActiveXObject) { 
			    try {
			      httprequest = new ActiveXObject("Msxml2.XMLHTTP");
			    } catch (e) {
			      try {
			        httprequest = new ActiveXObject("Microsoft.XMLHTTP");
			      } catch (e) {
				      try {
				        httprequest = new ActiveXObject("MSXML2.XMLHTTP.3.0");
				      } catch (e) {
				      }	  
			      }
			    }
			  }
			  return httprequest;
		}


AJAX kullanırken önceden sürekli sorunlar yaşıyordum. Hatta diğer browser'lar üzerinde denemeden sadece IE6.0 üzerinde bir uygulama geliştirmiştim. Fakat sonra bi baktım Firefox'u bırak IE7.0 da bile çalışmıyordu. Sonradan araştırdım ve microsoftun IE7 için MSXML2.XMLHTTP.3.0 nesnesini çıkardığını gördüm ve diğer kodları biraz düzenleyince, yukarıdaki tam takır çalışan getXMLHTTP fonksiyonunu elde ettim. Safari, Opera da dahi çalışıyor.

Senin dediğin olaya gelince; IFrame i AJAX ile yüklemek diye birşey ben duymadım açıkcası. Çünkü DIV mevcut sayfanın içinde kullanılırken, IFrame sayfa içinde sayfa açmamıza yarıyor. Bu yüzden kullanıcıyı IFrame in içindeki sayfanın onLoad ına küçük bir script yazarak yüklendiğine işaret etmek amacıyla kandırabilirsin. Ya da IFrame'i butona tıklandığında document.getElementById(IframeID).style.display='none' ve yüklendiğinde de document.getElementById(IframeID).style.display='block' yapabilirsin. Tabiki bu işlemler arasında da IFrame in bulunduğu alana bir progress gif koyarsın.

Bu arada IE de çalışırken Firefox'da çalışmamasını da esefle kınıyorum.

var sayfa="";
this.parent.location.href=sayfa





TTTFP
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb