Gammal 2008-07-22, 02:49   #1
Kristoffer G
Har WN som tidsfördriv
 
Kristoffer Gs avatar
 
Reg.datum: maj 2007
Inlägg: 1 003
Standard

Ajax fungerar endast i FF


Jag lyckas inte få följande att fungera i någon annan webbläsare än Firefox... Jag får inga felmeddelanden eller någontingm kan inte se vad som är fel. Webbläsaren kontrolleras ju trots allt.

Kod:
<script language="Javascript">
function xmlhttpPost(strURL) {
  var xmlHttpReq = false;
  var self = this;
  // Mozilla/Safari
  if (window.XMLHttpRequest) {
    self.xmlHttpReq = new XMLHttpRequest();
  }
  // IE
  else if (window.ActiveXObject) {
    self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  }
  self.xmlHttpReq.open('POST', strURL, true);
  self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  self.xmlHttpReq.onreadystatechange = function() {
	
  
  if (self.xmlHttpReq.readyState == 1) {
      updatepage('<br /><br /><img src="loader.gif" border="0" alt="" style="margin-left:15px;" />');
    }

 
    if (self.xmlHttpReq.readyState == 4) {
      updatepage(self.xmlHttpReq.responseText);
    }
  }
  self.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;
}
</script>
__________________
www.ehandel.com - Mötesplatsen för professionella e-handlare i Norden
www.webmaster.se - Mötesplatsen för professionell webbdesign & cms
www.geiser.se - Min egna lilla blogg
Gammal 2008-07-22, 05:25   #2
hnn
Bara ett inlägg till!
 
hnns avatar
 
Reg.datum: mar 2004
Inlägg: 1 901
Standard

Använd ett bibliotek som Prototype, JQuery eller liknande. Onödigt att behöva uppfinna hjulet igen.
__________________
Allt jag säger är min personliga åsikt och är inte någon åsikt ifrån företag eller kunder som jag representerar (om inget annat sägs i posten ifråga).
Gammal 2008-07-22, 07:42   #3
turboraketti
Medlem
 
turborakettis avatar
 
Reg.datum: feb 2008
Inlägg: 76
Standard

Håller med om att jquery m.fl. med fördel kan användas till sånt här, men det är ju förstås värdefullt att kunna grunderna också, så jag föreslår att denna tråd ägnas åt att hitta felet i Brazzans kod.

Är du säker på att XMLHttpRequest-objektet skapas korrekt i MSIE (går den vidare till ActiveX-koden)? Om man kollar på Peter Paul-Kochs metod (http://www.quirksmode.org/js/xmlhttp.html) så anser han sig tydligen vara tvungen att använda try{}catch(){} och inte bara kolla ifall window.XMLHttpRequest finns. Kanske finns en anledning...

En fråga: Varför lägger du objektet i "this" ("self")? Det kan finnas problem med det beroende på hur funktionen anropas. Se http://www.quirksmode.org/js/events_advanced.html (under rubriken Drawbacks).
/C#
Gammal 2008-07-22, 07:47   #4
hnn
Bara ett inlägg till!
 
hnns avatar
 
Reg.datum: mar 2004
Inlägg: 1 901
Standard

om du byter ut POST mot GET?

Om du använder POST, kanske den förväntar sig att få data postat?
__________________
Allt jag säger är min personliga åsikt och är inte någon åsikt ifrån företag eller kunder som jag representerar (om inget annat sägs i posten ifråga).
Gammal 2008-07-22, 14:02   #5
Kristoffer G
Har WN som tidsfördriv
 
Kristoffer Gs avatar
 
Reg.datum: maj 2007
Inlägg: 1 003
Standard

Vill bara förklara att jag har nada koll på javascript/Ajax... denna koder är ihopklistrad... men fungerar med FF. Jag har provat byta ut POST mot GET... samma resultat... jag har provat ta bort self och kört med this...samma resultat.

Det måste ligga i webbläsarkontrollen. Jag har kikat på Peter Paul-Kochs sätt att kontrollera läsare, men jag får inte till det i min egen kod.
__________________
www.ehandel.com - Mötesplatsen för professionella e-handlare i Norden
www.webmaster.se - Mötesplatsen för professionell webbdesign & cms
www.geiser.se - Min egna lilla blogg
Gammal 2008-07-22, 14:10   #6
turboraketti
Medlem
 
turborakettis avatar
 
Reg.datum: feb 2008
Inlägg: 76
Standard

Jag föreslår att du tar bort både self och this, dvs:
Kod:
xmlHttpReq = new XMLHttpRequest();
osv... Du gör ju "var xmlHttpReq = false;", så det känns ju vettigt att fortsätta använda den variabeln.

Du kan också skjuta in ett "alert('Hej MSIE');" i andra if-satsen för att kontrollera att MSIE kommer dit (alert gör en enkel popup med ok-knapp).
Gammal 2008-07-22, 15:06   #7
Kristoffer G
Har WN som tidsfördriv
 
Kristoffer Gs avatar
 
Reg.datum: maj 2007
Inlägg: 1 003
Standard

Har provat det du säger... har plockat bort self och this.. fortfaranda samma sak (fungerar i FF men inte de andra).

Jag har även provat lägga till en alert i IE kontrollen... den ploppar inte upp... så det är väl där problemet ligger.

Men å andra sidan så fungerar det inte i Safari heller.
__________________
www.ehandel.com - Mötesplatsen för professionella e-handlare i Norden
www.webmaster.se - Mötesplatsen för professionell webbdesign & cms
www.geiser.se - Min egna lilla blogg
Gammal 2008-07-22, 15:09   #8
Kristoffer G
Har WN som tidsfördriv
 
Kristoffer Gs avatar
 
Reg.datum: maj 2007
Inlägg: 1 003
Standard

Så här ser formuläret ut

Citat:

<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='JavaScript:xmlhttpPost("show_feed.php")'> Geiser.se</option>
<option value="http://feeds.feedburner.com/tkjblogg?format=xml" onclick='JavaScript:xmlhttpPost("show_feed.php")'> TkJ</option>
<option value="http://www.dan.se/feed" onclick='JavaScript:xmlhttpPost("show_feed.php")'> Dan.se</option>
</select>

<div id="result"></div>
</form>
</body>
</html>
__________________
www.ehandel.com - Mötesplatsen för professionella e-handlare i Norden
www.webmaster.se - Mötesplatsen för professionell webbdesign & cms
www.geiser.se - Min egna lilla blogg
Gammal 2008-07-22, 15:14   #9
turboraketti
Medlem
 
turborakettis avatar
 
Reg.datum: feb 2008
Inlägg: 76
Standard

Ta bort "Javascript:" från onclick. Det ska bara finnas om du lägger javascript i href-attributet. Gissar att FF fattar vad du menar, men andra webbläsare genomskådar det inte (tror jag).
Gammal 2008-07-22, 15:20   #10
Kristoffer G
Har WN som tidsfördriv
 
Kristoffer Gs avatar
 
Reg.datum: maj 2007
Inlägg: 1 003
Standard

Samma effekt... fungerar bara i FF.
__________________
www.ehandel.com - Mötesplatsen för professionella e-handlare i Norden
www.webmaster.se - Mötesplatsen för professionell webbdesign & cms
www.geiser.se - Min egna lilla blogg
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 05:29.


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