![]() |
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"> |
Använd ett bibliotek som Prototype, JQuery eller liknande. Onödigt att behöva uppfinna hjulet igen.
|
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# |
om du byter ut POST mot GET?
Om du använder POST, kanske den förväntar sig att få data postat? |
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. |
Jag föreslår att du tar bort både self och this, dvs:
Kod:
xmlHttpReq = new XMLHttpRequest(); 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). |
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. |
Så här ser formuläret ut
Citat:
|
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).
|
Samma effekt... fungerar bara i FF.
|
Så här ser allting ut nu (lite bättre översyn)
fetch.js Kod:
function xmlhttpPost(strURL) { Kod:
<html> Kod:
<?php |
Testa att sätta xmlHttpReq till null istället för false och kör en try..catch-struktur istället vid skapandet av objektet.
|
Hm...
Först av allt vet vi inte om det blir något XMLHttepRequest-objekt överhuvudtaget. Du borde ta och lägga till en else-sats före xmlHttpReq.open(...): Kod:
else { Kod:
// Mozilla/Safari Kod:
// Mozilla/Safari |
fetch.js
Kod:
function sendRequest(url,callback,postData) { Kod:
<html> Detta är koden ifrån: http://www.quirksmode.org/js/xmlhttp.html med modifikationer i din html-kod för att passa scriptet. |
Det ska fungera som så att man i drop down listan väljer en feed... den skickar url'en till show_feed.php som tar emot det, skickar in den i klassen rss_class.php som i sin tur behandlar rss-feeden och återger det jag vill att den ska återge.
Jag ska testa det ni föreslår om ett litet tag.. återkommer. EDIT: hehe, missuppfattade det du skrev... jag ska testa den koden du skickade :) Jag uppskattar all hjälp ni ger mig :) |
Det ser väl bra ut, men updatepage() kommer inte gilla att den får ett objekt och inte en sträng.
Två alternativ: 1) Ändra i sendRequest så callback() anropas med argumentet req.responseText (istället för bara req). 2) Ändra i updatepage() så den lägger in str.responseText i innerHTML (istället för bara str). Smaksak... |
Citat:
Jag får upp en alert i FF, men inte i IE och Safari. Jag testade din try, catch... fungerade inte i någon. Citat:
|
Blir så ledsen.. ingenting fungerar :(
|
Använd denna instantiering istället:
Citat:
|
Samma resultat.. perfekt i FF, nada i IE och Safari
|
Denna kod fungerar felfritt i både FF och IE:
Citat:
|
well... precis samma resultat som tidigare.... alert fungerar i FF, men inte IE.
|
Testade du att köra enbart instantieringen utan någonting annat?
|
hehe... "Hej mozilla" får jag i alla browsers...
|
Citat:
|
Kod:
function updatepage(str) { Kod:
function updatepage(str) { |
Citat:
|
Jag testar i FF 3, IE 7 och Safari 3.1.2
|
Citat:
|
Så här ser det ut nu och fungerar i FF
fetch.js Kod:
function xmlhttpPost(strURL) { Kod:
<html> |
Det fungerar inte så bra att skriva ut vad som helst med alert i IE för att veta var felet ligger.
Du bör ändra form.feed.value i getquerystring (samt ta bort raden ovanför) till document.getElementById('feed').value och lägga på id i formuläret. |
Citat:
hehe.. lite spännande att se vem som kommer på lösningen :) Själv har jag noll koll. |
Citat:
|
nope.. inte i FF heller.
|
Då har du gjort något galet =) Lade du på feed-id:t i index.html?
|
alltså.. jag har id="feeds" på formuläret och id="feed" på select... hur ska då
function getquerystring() { var word = document.getElementById(feed).value qstr = 'feed=' + escape(word); return qstr; } Se ut? Edit... Jag har id="feeds" på formuläret och name="feed" på select |
Den skickar ingenting till show_feed.php i varken IE eller safari... jag har medvetet laggt till en felaktig url i <select> som genererar ett fel tillbaka...
Antingen det eller att den inte kan ta emot och skriva ut. |
Du måste ha id på select (antar du har med citattecken även om de faller bort i texten).
|
Kod:
<form name="feeds" action="index.html" method="POST"> Kod:
function getquerystring() { EDIT: Jupp.. la till citattecken :) Det fungerar i FF nu, men inte någon annanstans. |
Citattecknen kring feed i getquerystring också?
|
Alla tider är GMT +2. Klockan är nu 10:46. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson