Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax] problem z przeładowywaniem div`a pod IE
webber
post
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 19
Dołączył: 30.10.2007

Ostrzeżenie: (0%)
-----


Witam,

jest funkcja:
Kod
<script type="text/javascript">

//aby dzialalo na IE (niewiem kto tego uzywa jeszcze)
var ObiektXMLHttp = false;

if (window.XMLHttpRequest){
ObiektXMLHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}

function forum(){
if(ObiektXMLHttp){
//pobieranie danych
ObiektXMLHttp.open("GET", 'forum_posts.html');

ObiektXMLHttp.onreadystatechange = function(){
if(ObiektXMLHttp.readyState == 4){
i = ObiektXMLHttp.responseText;
document.getElementById('forum').innerHTML=i;
}
}

ObiektXMLHttp.send(null);
}
}

</script>


Wczytuje ona posty forum do diva od id forum, w FF jest ok, Opera tak samo, niestety badzIEwIE kompletnie nie reaguje, przeładowuje dane dopiero po zamknięciu i otwarciu strony ponownie. Jakieś rady?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Ja miałem problem w ie7 z innerHTML, jak tworzyłem dynamicznie listę opcji w <select>. Pomogła po dłuuugim szukaniu następująca funkcja:

Kod
function select_innerHTML(objeto,innerHTML){
/******
* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Versão: 2.1 - 04/09/2007
* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
      
    
    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];
  
        if(spantemp.tagName){    
            opt = document.createElement("OPTION")
    
   if(document.all){ //IE
    objeto.add(opt)
   }else{
    objeto.appendChild(opt)
   }      
    
   //getting attributes
   for(var j=0; j<spantemp.attributes.length; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value")
   opt.text = spantemp.innerHTML
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  }
}    
document.body.removeChild(selTemp)
selTemp = null
}
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 12:56