Beitrag von markus (1013 Beiträge) am Montag, 1.März.2010, 16:01.
probleme mit ticker in IE & FF mit doctype
hi,
hab mir gestern mal den url ticker aus der bib gezogen und muss leider feststellen, wenn ich in der seite einen doctype drin habe, er leider nur im ie, aber nicht im ff funktioniert.
danach habe ich es mit einem anderen ähnlichen script von dynamic drive versucht. hier sehe ich zumindest meinen tickerbereich in beiden browsern, es werden aber keine daten aus der db gezogen.
seh momentan den wald vor lauter bäumen nicht mehr.
evtl. jemand nen rat?
markus
####### funktioniert nur im IE oder im FF ohne doctype ##################
<perl>{
get "Id=$Id sort=-Datum","news";
$tickerTEXT=" . . . ";
while (get_next("news"))
{
my $name=($Titel ? "<b>$Titel </b>" : "<b>anonym</b>");
$tickerTEXT.="<font face=\"verdana,arial,helvetica\" size=\"2\" color=\"#ffffff\"><li><a href=\"http://www....\" onclick=\"FensterOeffnen(this.href); return false\">$Titel</a></li></font> . . . ";
}
out <<EOF;
<script language="JavaScript1.2">
<!--
//Specify the marquee's width and height (in pixels)
var marqueewidth=660
var marqueeheight=18
//Specify the marquee's scroll speed (larger is faster)
var speed=6
//Specify the marquee contents
var marqueecontents='$tickerTEXT'
if (document.all)
document.write('<marquee align=middle scrollAmount='+speed+' style="width:'+marqueewidth+'">'+marqueecontents+'</marquee>')
function regenerate()
{
window.location.reload()
function regenerate2()
{
if (document.layers)
{
setTimeout("window.onresize=regenerate",450)
intializemarquee()
}
function intializemarquee()
{
document.cmarquee01.document.cmarquee02.document.write('<nobr> '+marqueecontents+'</nobr>')
document.cmarquee01.document.cmarquee02.document.close()
thelength=document.cmarquee01.document.cmarquee02.document.width
scrollit()
function scrollit()
{
if (document.cmarquee01.document.cmarquee02.left>=thelength*(-1))
{
document.cmarquee01.document.cmarquee02.left-=speed
setTimeout("scrollit()",100)
document.cmarquee01.document.cmarquee02.left=marqueewidth
scrollit()
window.onload=regenerate2
//-->
</script><ilayer width=&{marqueewidth}; height=&{marqueeheight}; name="cmarquee01"><layer name="cmarquee02"></layer></ilayer>
EOF
}
</perl>
############# funzt in IE & FF, zieht aber keine daten aus db #########
<perl>{
get "Id==* sort=-Datum","news";
$tickerTEXT=" NEWS ";
while (get_next("news"))
{
my $name=($name ? "<b>$Titel </b>" : "$Titel");
$tickerTEXT.="<li><a href=\"http://www......\">$Titel </a></li> . . . ";
}
out <<EOF;
<script language="JavaScript1.2">
/*
Cross browser Marquee script- © 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
*/
//Specify the marquee's width (in pixels)
var marqueewidth="300px"
//Specify the marquee's height
var marqueeheight="25px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=2
//configure background color:
var marqueebgcolor="#DEFDD9"
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1
//Specify the marquee's content (don't delete <nobr> tag)
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):
var marqueecontent='<nobr>$tickerTEXT</nobr>'
////NO NEED TO EDIT BELOW THIS LINE////////////
marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee
function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=parseInt(marqueewidth)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate
function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
else
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
}
else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=parseInt(marqueewidth)+8
if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
EOF
}
</perl>
Antworten
Beitrag von Claus (4645 Beiträge) am Montag, 1.März.2010, 16:32.
Re: probleme mit ticker in IE & FF mit doctype
Antworten
Beitrag von Claus (4645 Beiträge) am Dienstag, 2.März.2010, 16:03.
Re: probleme mit ticker in IE & FF mit doctype
Antworten
Beitrag von markus (1013 Beiträge) am Dienstag, 2.März.2010, 18:04.
Re: Re: probleme mit ticker in IE &amp; FF mit doctype
hab diesen code in nem template
mit dem doctype:
##########################
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
##########################
hab ich ne weiße seite - ohne läufts!
selbes ergebnis in:
IE7, FF3, Safari 3, Opera 9
:-) markus
<head><title></title></head>
<body>
<perl>
get "Id==* sort=- range=0,10","news", "urlticker";
$tickerTEXT=" + + + ";
while (get_next("urlticker"))
{
$tickerTEXT.="<font face=\"verdana,arial,helvetica\" size=\"2\" color=\"#ffffff\"><a href=\"http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/USERNAME/pressemitteilungen&Id==$_id\" target=\"mainFrame\">$Titel</a></font> + + + ";
}
</perl>
<script language="JavaScript1.2">
/*
Cross browser Marquee script- © 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
*/
//Specify the marquee's width (in pixels)
var marqueewidth=800
//Specify the marquee's height
var marqueeheight=20
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=3
//configure background color:
var marqueebgcolor="#E7E7E7"
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1
//Specify the marquee's content (don't delete <nobr> tag)
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):
var marqueecontent='<nobr>$tickerTEXT</nobr>'
////NO NEED TO EDIT BELOW THIS LINE////////////
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100;left:-1000">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee
function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=marqueewidth+8
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? cross_marquee.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=marqueewidth+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate
function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed
else
cross_marquee.style.left=marqueewidth+8
}
else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=marqueewidth+8
if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0;top:0"></div>')
write('</div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
</body></html>
Antworten
Beitrag von Claus (4645 Beiträge) am Dienstag, 2.März.2010, 18:50.
Re: Re: Re: probleme mit ticker in IE &amp;amp; FF mit doctype
Antworten
Beitrag von markus (1013 Beiträge) am Mittwoch, 3.März.2010, 07:35.
Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp; FF mit doctype
... warum nur bei kostnix?!
in lizenz und miete klappts nicht :-(
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 3.März.2010, 09:04.
Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp; FF mit doctype
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 3.März.2010, 09:29.
Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp; FF mit doctype
habt ihr dahin testlinks?
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 3.März.2010, 10:09.
Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp;amp; FF mit doctype
Antworten
Beitrag von markus (1013 Beiträge) am Mittwoch, 3.März.2010, 10:17.
Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp;amp; FF mit doctype
Antworten
Beitrag von richard (1187 Beiträge) am Mittwoch, 3.März.2010, 10:32.
Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp; FF mit doctype
Antworten
Beitrag von markus (1013 Beiträge) am Mittwoch, 3.März.2010, 11:12.
Re: Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp;amp;amp; FF mit doctype
habs!!
die höhe und weite in "" und mit px - das war`s!
var marqueewidth="800px"
//Specify the marquee's height
var marqueeheight="20px"
Antworten
Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 3.März.2010, 14:18.
Re: Re: Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp;amp;amp;amp; FF mit doctype
Wundert mich, dass es jetzt funktioniert.
Wenn ihr einen Doctype angeben möchtet, dann benutzt doch einfach einen den ihr auch verwendet und das ist bei dir 4.01 Transitional der anders gesagt Quirks-Modus.
<layer> <nobr> <marque>, single Tag's nicht geschlossen, Parameter nicht in Anführungszeichen etc. Das ist kein xhtml 1
Kein Wunder, dass ein "ordentlicher" Browser da nicht mehr mit macht wenn er versucht das Dokument W3C konform zu interpretieren. :)
>... warum nur bei kostnix?!
Weil jeder Browser den doctype in der ersten Zeile erwartet, und das ist er bei der kostenlosen Version durch die Werbung nie.
------
Aber so eine Laufschrift lässt sich doch auch mit einem übergrossen CSS Elementen und nen scrollright erzeugen. Das kann jeder moderne Browser ohne Weiche. Man kann jedes html blockelement so laufen lassen (auch xhtml konforme ;)).
z.b.
http://baseportal.de/cgi-bin/baseportal.pl?htx=/Pouraga/test/marqueedemo
Springt jetzt noch, aber der Beweiss ist mit dem "Dreizeiler" erbracht. :)
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 3.März.2010, 14:45.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp;amp;amp;amp;amp; FF mit doctype
hehe, das scrollright ist selbst mir nicht bekannt... ;)
Antworten
Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 3.März.2010, 16:15.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; FF mit doctype
Eigentlich ScrollLeft. Ich wollt gerade selber mal schauen, woher ich das kenne und habe gesehen: Es ist eigentlich Read-only.
Aber ScrollTo gilt scheinbar auch nur für das "window." objekt. Von daher gibt es für "element." keinen Ersatz.
Habe ich schon benutzt um "sieht so aus wie Ajax" Funktionen umzusetzen. (hmm, funktion geht über definition) :)
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 3.März.2010, 17:15.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: probleme mit ticker in IE &amp;amp;amp;amp;amp;amp;amp;amp;amp; FF mit doctype
Antworten