kalle: Problem mit Opera bei Heise News (RDF)

Hallo zusammen,

Ich bekomme mit dem Opera immer eine Fehlermeldung, wenn ich mit der Maus über das Script fahre, kann mir jemand weiter Helfen?

Fehlerbeschreibung:
Event thread: mouseover
Error:
name: TypeError
message: Statement on line 1: Type mismatch (usually a non-object value used where an object is required)
Backtrace:
Line 1 of  script
document.all.newsbox.stop();
At unknown location
[statement source code not available]

code begin#
<?php
$cache_file = "/srv/www/htdocs/webnummer/html/shortnews/heise.cache";
$cache_time = 3600;
$max_items = 30;
$backend  = "http://www.heise.de/newsticker/heise.rdf";
$items   = 0;
$time    = split(" ", microtime());
srand((double)microtime()*1000000);
$cache_time_rnd = 300 - rand(0, 600);
if ( (!(file_exists($cache_file))) || ((filectime($cache_file) + $cache_time - $time[1]) + $cache_time_rnd < 0) || (!(filesize($cache_file))) ) {
$fpread = fopen($backend, 'r');
if(!$fpread) {
} else {
$fpwrite = fopen($cache_file, 'w');
if(!$fpwrite) {
} else {
while(! feof($fpread) ) {
$buffer = ltrim(Chop(fgets($fpread, 256)));
if (($buffer == "<item>") && ($items < $max_items)) {
 $title = ltrim(Chop(fgets($fpread, 256)));
 $link = ltrim(Chop(fgets($fpread, 256)));
 $title = ereg_replace( "<title>", "", $title );
 $title = ereg_replace( "</title>", "", $title );
 $link = ereg_replace( "<link>", "", $link );
$link = ereg_replace( "</link>", "", $link );
$title = ereg_replace( "ä", "ä", $title );
$title = ereg_replace( "ü", "ü", $title );
$title = ereg_replace( "ö", "ö", $title );
$title = ereg_replace( "ß", "ß", $title );
$title = ereg_replace( "Ä", "Ä", $title );
$title = ereg_replace( "Ö", "Ö", $title );
$title = ereg_replace( "Ãœ", "Ü", $title );
fputs($fpwrite, "<img src='themes/images/bullet.gif'> <a href='$link' target='_blank' onMouseOver='document.all.newsbox.stop();' onMouseOut='document.all.newsbox.start();'>$title</A><br><br>\n");
$items++;
}
}
}
fclose($fpread);
}
fclose($fpwrite);
}
echo"<marquee id='newsbox' width='99%' height='120' behavior='scroll' align='left' direction='up' scrolldelay='50' scrollamount='1'>";
 if (file_exists($cache_file)) {
 include($cache_file);
 }
echo"</marquee>";
?>
code end#

  1. Hallo,

    Offenbar handelt es sich hier um ein JavaScript-Problem, der PHP-Code ist daher unwichtig, höchstens der HTML-Code, den er erzeugt.

    Ein marquee-Elementobjekt hat im Opera keine Methoden namens start() und stop(). Das sind Microsoft-Erfindungen.

    So kommst du also nicht weiter, da müsstest du dich nach einem anderen Newsticker umsehen.

    Mathias