Avatar billede michaelfp Nybegynder
15. juli 2012 - 21:16 Der er 5 kommentarer

problem med danske bogstaver i bannerscript fra dynamic dive

Hej eksperter,

er der en, som kan gennemskue, hvor dette script fejler, når der bruges danske bogstaver i xml filen!!

<script language="JavaScript1.2">

/*
DOM XML ticker- © Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and Terms Of Use, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/

//Container for ticker. Modify its STYLE attribute to customize style:
var tickercontainer='<div id="container" style="background-color:#FFFFE1;width:150px;height:120px;font:normal 13px Verdana;"></div>'

//Specify path to xml file
var xmlsource="ticker.xml"

////No need to edit beyond here////////////
//load xml file
if (window.ActiveXObject)
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
else if (document.implementation && document.implementation.createDocument)
var xmlDoc= document.implementation.createDocument("","doc",null);
if (typeof xmlDoc!="undefined"){
document.write(tickercontainer)
xmlDoc.load(xmlsource)
}

//Regular expression used to match any non-whitespace character
var notWhitespace = /\S/

function init_ticker(){
//Cache "messages" element of xml file
tickerobj=xmlDoc.getElementsByTagName("xmlticker")[0]

//REMOVE white spaces in XML file. Intended mainly for NS6/Mozilla
for (i=0;i<tickerobj.childNodes.length;i++){
if ((tickerobj.childNodes[i].nodeType == 3)&&(!notWhitespace.test(tickerobj.childNodes[i].nodeValue))) {
tickerobj.removeChild(tickerobj.childNodes[i])
i--
}
}
document.getElementById("container").innerHTML=tickerobj.childNodes[1].firstChild.nodeValue
msglength=tickerobj.childNodes.length
currentmsg=2
themessage=''
setInterval("rotatemsg()",tickerobj.childNodes[0].firstChild.nodeValue)
}

function rotatemsg(){
var msgsobj=tickerobj.childNodes[currentmsg]
if (msgsobj.getAttribute("url")!=null){
themessage='<a href="'+msgsobj.getAttribute("url")+'"'
if (msgsobj.getAttribute("target")!=null)
themessage+=' target="'+msgsobj.getAttribute("target")+'"'
themessage+='>'
}
themessage+=msgsobj.firstChild.nodeValue
if (msgsobj.getAttribute("url")!=null)
themessage+='</a>'

//Rotate msg and display it in DIV:
document.getElementById("container").innerHTML=themessage
currentmsg=(currentmsg<msglength-1)? currentmsg+1 : 1
themessage=''
}

function fetchxml(){
if (xmlDoc.readyState==4)
init_ticker()
else
setTimeout("fetchxml()",10)
}

if (window.ActiveXObject)
fetchxml()
else if (typeof xmlDoc!="undefined")
xmlDoc.onload=init_ticker

</script>

indhold i filen ticker.xml
<?xml version="1.0"?>
<xmlticker>
<pause>3000</pause>
<message>Welcome to Dynamic Drive</message>
<message url="http://www.dynamicdrive.com">Brædstrup</message>
<message url="http://www.javascriptkit.com" target="_blank">Check out JavaScriptKit.com</message>
<message>This is a sample text message</message>
<message>This is another sample text message</message>
</xmlticker>

Hvis man skriver Braedstrup - altså ikke Æ så virker det. Scriptet fejler ved ØÆÅÖ m.v.

Mangge sommerhilsner michael
Avatar billede olebole Juniormester
15. juli 2012 - 21:21 #1
<ole>

Det er et *meget* gammelt script. Prøv at finde noget mere tidssvarende.

Derudover handler det om, hvilken encoding (tegnsæt) filerne er gemt med, samt hvilket tegnsæt, der er angivet i HTML-/XML-koden

/mvh
</bole>
Avatar billede michaelfp Nybegynder
15. juli 2012 - 21:36 #2
Tak for kommentar Ole,
Hvad mener du med "gemt i"?? Scriptet kopieres jo bare ind på asp siden og XMLfilen kan vel omskrives, hvis det er den som driller!

Jeg var overbevist om at koden i scriptet ændrer ved de danske bogstaver og derefter fejler!

Jeg har ledt længe efter et simpel bannerscript - ved du hvor der findes et andet som kan det samme men er nyere?

Hilsen Michael
Avatar billede olebole Juniormester
15. juli 2012 - 21:56 #3
Nej, der tager du grundigt fejl - men det er der rigtig mange, der gør. Spørgsmål af denne karakter er der flere af om ugen på Eksperten  =)

For det første skal du tjekke, hvilket tegnsæt dit ASP-miljø er sat op til at køre med - det gælder også databaser, hvis du bruger det.

Dernæst skal du angive tegnsæt i din XML-fil - og du skal også have en meta med tegnsæt i dit HTML-dokument.

En fil gemmes altid med en speciel encoding. Skriv en lille fil i noget så simpelt som Notepad - og du vil se, du kan vælge encoding, når du gemmmer den. Encoding er et absolut must at forholde sig til, når man har med dokumenter at gøre. De fleste opdager det dog først, når de laver et webdokument, der ikke funker.

Der er rigtig mange faktorer, der spiller ind - og det er noget, rigtig mange har problemer med. At få et eller andet til at 'virke' i ASP eller PHP er meget let, men det gør desværre, at de færreste ved eller har lært, hvad de gør - eller hvad de i virkeligheden burde gøre
Avatar billede olebole Juniormester
15. juli 2012 - 21:58 #4
Når du søger scripts på Google, så søg kun blandt artikler og tutorials, som ikke er over et par år gamle
Avatar billede michaelfp Nybegynder
02. august 2012 - 13:30 #5
ok tak. lukker spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester