WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Ajax fungerar endast i FF (https://www.wn.se/forum/showthread.php?t=30684)

tartareandesire 2008-07-22 18:46

Denna kod fungerar felfritt i både FF och IE:

Citat:


function GetXmlHttpObject()
{
var xmlHttpReq=null;
try
{
xmlHttpReq=new XMLHttpRequest();
alert("Hej Mozilla!");
}
catch (e)
{
try
{
xmlHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
alert("Hej IE!");
}
catch (e)
{
xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
alert("Hej IE!");
}
}
return xmlHttpReq;
}

var xmlHttp = GetXmlHttpObject();

Felet ligger sannolikt senare i koden. Felsök mer noggrant steg för steg så hittar du det säkert.

Kristoffer G 2008-07-22 19:13

well... precis samma resultat som tidigare.... alert fungerar i FF, men inte IE.

tartareandesire 2008-07-22 19:36

Testade du att köra enbart instantieringen utan någonting annat?

Kristoffer G 2008-07-22 19:39

hehe... "Hej mozilla" får jag i alla browsers...

tartareandesire 2008-07-22 19:50

Citat:

Originally posted by Brazzan@Jul 22 2008, 19:39
hehe... Hej mozilla får jag i alla browsers...

Du använder IE7 förmodar jag? Där används inte ActiveX längre så allt är som det ska och objektet har skapats. Felet ligger som sagt var senare i din kod.

Jonas 2008-07-22 19:52

Kod:

function updatepage(str) {
 document.getElementByIdresult.innerHTML = str;
}

emot

Kod:

function updatepage(str) {
 document.getElementByIdresult.innerHTML = str.responseText;
}

hur fungerar det då?

Kristoffer G 2008-07-22 20:02

Citat:

Originally posted by Jonas@Jul 22 2008, 19:52
Kod:

function updatepagestr {
 document.getElementByIdresult.innerHTML = str;
}

emot
Kod:

function updatepagestr {
 document.getElementByIdresult.innerHTML = str.responseText;
}

hur fungerar det då?

Fungerar inte alls

Kristoffer G 2008-07-22 20:05

Jag testar i FF 3, IE 7 och Safari 3.1.2

turboraketti 2008-07-22 20:21

Citat:

Ursprungligen postat av Brazzan
Citat:

Ursprungligen postat av Jonas
Kod:

function updatepagestr {
 document.getElementByIdresult.innerHTML = str;
}

emot
Kod:

function updatepagestr {
 document.getElementByIdresult.innerHTML = str.responseText;
}

hur fungerar det då?

Fungerar inte alls

Det är lite många versioner av koden i den här tråden... Ovanstående funkar med Paul-Kochs metod som Jonas föreslog tidigare, om man nu inte valt att modifiera callback-anropet istället...

Kristoffer G 2008-07-22 20:27

Så här ser det ut nu och fungerar i FF

fetch.js
Kod:

function xmlhttpPost(strURL) {
  var xmlHttpReq = null;
try
 {
 xmlHttpReq=new XMLHttpRequest();

 }
catch (e)
 {
 try
  {
  xmlHttpReq=new ActiveXObject("Msxml2.XMLHTTP");

  }
 catch (e)
  {
  xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");

  }
 }
       
  xmlHttpReq.open('POST', strURL, true);
  xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  xmlHttpReq.onreadystatechange = function() {
       
 
  if (xmlHttpReq.readyState == 1) {
      updatepage('<br /><br /><img src="loader.gif" border="0" alt="" style="margin-left:15px;" />');
    }

 
    if (xmlHttpReq.readyState == 4) {
      updatepage(xmlHttpReq.responseText);
    }
  }
  xmlHttpReq.send(getquerystring());
}

function getquerystring() {
  var form = document.forms['feeds'];
  var word = form.feed.value;
  qstr = 'feed=' + escape(word);
       
  return qstr;
}

function updatepage(str){
  document.getElementById("result").innerHTML = str;
       
}

index.html
Kod:

<html>
<head>
<script type="text/javascript" src="js/fetch.js"></script>
</head>
<body>
<form name="feeds" action="index.html" method="POST">
 <select name="feed">
 <option value="">Välj</option>
 <option value="http://www.geiser.se/feed" onClick='xmlhttpPost("show_feed.php")'>Geiser.se</option>
 <option value="http://feeds.feedburner.com/tkjblogg?format=xml" onClick='xmlhttpPost("show_feed.php")'>TkJ</option>
 <option value="http://www.dan.se/feed" onClick='xmlhttpPost("show_feed.php")'>Dan.se</option>
 </select><br />
 <div id="result"></div>
</form>
</body>
</html>

Jag har testat att lägga in lite alerts överallt för att se hur långt IE kommer... den enda gången alert fungerar i IE är när jag lägger den längst ner på sidan.


Alla tider är GMT +2. Klockan är nu 20:15.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson