Avatar billede jps2mt Nybegynder
14. februar 2004 - 23:18 Der er 5 kommentarer og
1 løsning

Scroll tekst i statusbaren

Hvorfor stopper teksten når en IFrame i dokumentet reloader? Kan det ikke laves så det ikke stopper teksten??

var scrollCounter = 0;
var scrollText    = "Test tekst";
var scrollDelay  = 60;
var i = 0;
while (i ++ < 140)
scrollText = " " + scrollText;
function Scroller() {
window.status = scrollText.substring(scrollCounter++, scrollText.length);
if (scrollCounter == scrollText.length) scrollCounter = 0;
setTimeout("Scroller()", scrollDelay);
}
Scroller();

Nogen løsninger??

/BlackChart
Avatar billede roenving Novice
15. februar 2004 - 05:31 #1
Stopper den også, hvis du:

var scrollCounter = 0;
var scrollText    = "Test tekst";
var scrollDelay  = 60;
var i = 0;
while (i ++ < 140)
scrollText = " " + scrollText;
function Scroller() {
window.status = scrollText.substring(scrollCounter++, scrollText.length);
if (scrollCounter == scrollText.length) scrollCounter = 0;
}
setInterval('Scroller()',scrollDelay);
Avatar billede jps2mt Nybegynder
15. februar 2004 - 09:56 #2
Ja... :(

Det skal nok lige siges at den IFrame egentligt loader scriptet, men at det så indsættes på hovedsiden i et span...
Scriptet loades dog kun hvis teksten der skal løbe der er noget andet end den der allerede er der...

Dvs. hvis teksten ikke har ændret sig når IFramen refreshes, så ændres scriptet i span'et ikke...

(Hovedsiden reloades ikke)
Avatar billede roenving Novice
15. februar 2004 - 17:12 #3
Hvad med så at sætte en initialisering ind, når den har loadet det, for en rutine, som bliver loadet vil naturligvis ikke fortsætte, så bare truslen kan måske være nok:

<body onload="parent.Scroller();">
Avatar billede jps2mt Nybegynder
16. februar 2004 - 10:23 #4
Kan jeg ikke helt se logikken i...

Hoved siden:

<?
session_start($PHPSESSID);

if (!isset($intime)) {
  session_register('intime');
  $intime = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));
}

Require("functions.inc.php");

$arrStatus = array(0 => 'Normal', 1 => 'CoAdmin', 2 => 'Admin');

if ($newnick == "") {
  $theuser = $username;
} else {
  $theuser = $newnick;
}

$conn = mysql_connect("$mysqlHost", "$mysqlUser", "$mysqlPass");
mysql_select_db("$mysqlData");

$rummet = $_SESSION[rum] + 1;

$result = mysql_query("SELECT Topic FROM room_names WHERE ID = '$rummet'");
$row = mysql_fetch_array($result);

if ($row[Topic] == "") {
  $Topic = "Velkommen til Tjat.dk - Stedet Hvor Folk Mødes!";
} else {
  $Topic = $row[Topic];
}

$nowtime = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));

$totalInTime = $nowtime - $intime;
$totalInTime = ($totalInTime/60);
$totalInTime = explode(".",$totalInTime);

if ($totalInTime[0] == "1") {
  $totalInTime = "<strong>1</strong> minut (".($_SESSION[totaltime]+1).")";
} else {
  $totalInTime = "<strong>".$totalInTime[0]."</strong> minutter (".($_SESSION[totaltime]+$totalInTime[0]).")";
}
?>
<html>

<head>
<meta http-equiv="Page-Enter" content="revealtrans(duration=0,transition=0)">
<title>TopBox</title>
<script type="text/JavaScript">
  function opdaterSpan(chatindhold) {
  if (document.getElementById) {
    document.getElementById("iespan").innerHTML = chatindhold;
  } else if (document.all) {
    document.all["iespan"].innerHTML = chatindhold;
  } else if (document.layers) {
    document["nslayer"].document.write(chatindhold);
  }
  }

  function opdaterSpanTopic(topic) {
  if (document.getElementById) {
    document.getElementById("ietopic").innerHTML = topic;
  } else if (document.all) {
    document.all["ietopic"].innerHTML = topic;
  } else if (document.layers) {
    document["nstopic"].document.write(topic);
  }
  }
</script>
</head>

<body bgcolor="#dccb50" topmargin="0" leftmargin="0">
<iframe src="TopBox_updater.php?PHPSESSID=<?= $PHPSESSID; ?>" height="0" width="0" name="updater"></iframe>
<span id="iespan"><layer id="nslayer">
</span></layer>
<span id="ietopic"><layer id="nstopic">
</span></layer>
</body>

</html>

TopBox_updater.php:

<?
session_start($PHPSESSID);

if (!isset($intime)) {
  session_register('intime');
  $intime = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));
}

Require("functions.inc.php");

$arrStatus = array(0 => 'Normal', 1 => 'CoAdmin', 2 => 'Admin');

if ($newnick == "") {
  $theuser = $username;
} else {
  $theuser = $newnick;
}

$conn = mysql_connect("$mysqlHost", "$mysqlUser", "$mysqlPass");
mysql_select_db("$mysqlData");

$rummet = $_SESSION[rum] + 1;

$result = mysql_query("SELECT refresh FROM brugere WHERE (Brugernavn = '".$_SESSION[username]."')");
$row = mysql_fetch_array($result);

$_refresh = $row[refresh];
if ($_refresh != "") {
  $RefreshTime = $_refresh;
}

$result = mysql_query("SELECT Topic FROM room_names WHERE ID = '$rummet'");
$row = mysql_fetch_array($result);

if ($row[Topic] == "") {
  $Topic = "Velkommen til trab.dk chatten!";
} else {
  $Topic = $row[Topic];
}

$_statusTopic = $Topic;

$_statusTopic = strip_tags($_statusTopic);

$nowtime = mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));

$totalInTime = $nowtime - $intime;
$totalInTime = ($totalInTime/60);
$totalInTime = explode(".",$totalInTime);

if ($totalInTime[0] == "1") {
  $totalInTime = "<strong>1</strong> minut (".($_SESSION[totaltime]+1).")";
} else {
  $totalInTime = "<strong>".$totalInTime[0]."</strong> minutter (".($_SESSION[totaltime]+$totalInTime[0]).")";
}
?>
<html>
<head>

<script type="text/JavaScript">
function updater() {
<?
$_out  = "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\" height=\"100%\" id=\"AutoNumber1\">";
$_out .= " <tr>";
$_out .= "  <td>&nbsp;$Topic<br>&nbsp;Du er logget ind som <strong>$theuser</strong> og din nuværende status på chatten er <strong>$arrStatus[$status]</strong> - Du har været logget ind i ".$totalInTime."</td>";
$_out .= " </tr>";
$_out .= "</table>";

$_out = str_replace("\r\n", "", $_out);
?>
  statusHTML = '<?= $_out; ?>';
  parent.opdaterSpan( statusHTML );
<?
$_extra = "";
if ($_SESSION[statustopic] != $_statusTopic) {
  $_SESSION[statustopic] = $_statusTopic;
  $_extra  = " var scrollCounter = 0;\n";
  $_extra .= " var scrollText    = \"".$_statusTopic."\";\n";
  $_extra .= " var scrollDelay  = 60;\n";
  $_extra .= " var i = 0;\n\n";   
  $_extra .= " while (i ++ < 140)\n";
  $_extra .= " scrollText = \" \" + scrollText;\n\n";
  $_extra .= " function Scroller() {\n";
  $_extra .= "  window.status = scrollText.substring(scrollCounter++, scrollText.length);\n";
  $_extra .= "  if (scrollCounter == scrollText.length) scrollCounter = 0;\n";
//  $_extra .= "  setTimeout(\"Scroller()\", scrollDelay);\n";
  $_extra .= " }\n";
  $_extra .= " setInterval(\"Scroller()\", scrollDelay);\n";
//  $_extra .= " Scroller();\n";
  $_extra = str_replace("\n","",$_extra);
?>
  topicHTML = '<?= $_extra; ?>';
  parent.opdaterSpanTopic( topicHTML );
<?
}
?>
  setTimeout( 'window.location.reload(true)', <?= $RefreshTime ?>000 );
}
updater();

<?= $_extra; ?>
</script>

</head>
<body>
</body>
</html>




Kan ikke helt se hvordan du vil smide det ind i den...Kan godt være det er mig der sover endnu :D
Avatar billede jps2mt Nybegynder
19. februar 2004 - 18:46 #5
Ingen ide??
Avatar billede jps2mt Nybegynder
13. marts 2004 - 16:14 #6
Så lukker jeg da bare, og leger vidre med det selv :(
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