Archivlink: javarea.de Forum > JavaScript > Newsticker
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Newsticker
Pages: [1]
| geschrieben von struppi57 am 08.10.2007 - 11:51 |
Hallo,
ich hatte auf den Seiten der Uni Bremen das DYNAPI-Script von Dan
Steinmann ausgegraben und bei mir auf der Homepage einen Demo-Newsticker
veröffentlicht.
- http://www.dock-ev.de/preview/dockp....mtl=074302 -
Die im Script enthaltene Internetadresse von Dan Steinmanns
Homepage gibt es leider nicht mehr. Weiss jemand evtl die neue Adresse von
Dan Steinmanns Homepage ?? Ich möchte mir eine Nutzungsgenehmigung einholen
vielen Dank im voraus
Thomas |
| geschrieben von Micha am 08.10.2007 - 15:32 |
Hi,
für Version zwei verweise ich mal auf einen Beitrag in meinem Forum, wo ich ebenfalls die Frage nach einem einfachen JavaScript Newsticker aufkam. Wenn der Dir reicht, dann darfst Du ihn gern nutzen...
Micha |
| geschrieben von struppi57 am 08.10.2007 - 16:52 |
Hallo Micha
Vielleicht weißt Du, woher der Quellcode von Version 2 ist.. Dann füge ich einen Hinweis auf den Ursprung bei. Dass er frei ist weiss ich.
Ich habe ihn Anfang September auf der Suche nach einem einfachen Newsticker aus dem www untergeladen. Die Frage nach dem Urheberrrecht von DYNAPI ist natürlich noch offen, auch wenn die Datei nach den Bestimmungen der LGPL angeblich frei verwendbar ist
Gruß Thomas
|
| geschrieben von Micha am 08.10.2007 - 17:07 |
Hallo,
gesichert kenne ich natürlich nur die Lizenzen, die ich selbst für meine Tools verwende. Frendsoftware und -scripte sind mir hingegen, gerade bei solchen kleinen Sachen, nicht geläufig. Da ich diese idR auch recht fix selbst umsetzen kann, komme ich nicht in den Konflikt.
Gruß
Micha |
| geschrieben von struppi57 am 09.10.2007 - 11:44 |
Hallo Micha,
Ich habe Dein Angebot angenommen und Deinen Newsticker bei mir als Version 3 eingepflegt. Vielen Dank! Ich habe allerdings Null-Plan in Sachen Javascript und mich würde Interessieren, wie man eine Schlagzeile (...einen Newsticker) in Deiner Version mit einem Link verknüpft. Zum Beispiel mit "../test/v1.html". Wie gesagt Javascript ist ein „Böhmisches Dorf“ für mich, und ich bin absoluter Einsteiger...
Beste Grüße sendet Thomas |
| geschrieben von René am 09.10.2007 - 13:12 |
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
| /**
*
* NewsTicker JavaScript
* (c) 2007 by Michael Loesler - http://derletztekick.com
* LGPL
*
**/
function Ticker(id, msg)
{
var parEl = null;
if (!(parEl = document.getElementById(id)) || (typeof msg != 'object'))
{
window.alert('Konnte Ticker nicht initialisieren!');
return;
}
this.respell = function(k, i)
{
parEl.innerHTML = msg[k].substring(0, i) + '_';
if (i++ == msg[k].length)
{
i = 0;
window.setTimeout(function() { this.respell(k, i); }, 3000);
k = (k + 1) == msg.length ? 0 : k + 1;
}
else
window.setTimeout(function() { this.respell(k, i); }, 50);
}
window.respell = this.respell;
this.respell(0, 0);
}
window.onload = function()
{
new Ticker('derletztekick', ['Dieser Ticker stammt von', '<a href="http://derletztekick.com">derletztekick.com</a>', 'GNU-LGPL']);
} |
|
| geschrieben von Micha am 09.10.2007 - 15:25 |
Hi Rene,
das wird so einfach nicht gehen. InnerHTML würde ich dann zwar auch - weils dann einfacher ist - nutzen aber dadurch, dass er Zeichen für Zeichen liest, erkennt er den Link nicht sofort.
Man müsste demnach mit einem regulären Ausdruck den Link zerlegen.
Quick & Dirty:
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
| /**
*
* NewsTicker JavaScript
* (c) 2007 by Michael Loesler - http://derletztekick.com
* modified by René Marscheider
* LGPL
*
**/
function Ticker(id, msg)
{
var parEl = null;
if (!(parEl = document.getElementById(id)) || (typeof msg != 'object'))
{
window.alert('Konnte Ticker nicht initialisieren!');
return;
}
this.respell = function(k, i)
{
var exp = new RegExp('<a(.+?)>(.+?)<\/a>', 'i');
var res = exp.exec(msg[k]);
if (res == null)
parEl.innerHTML = msg[k].substring(0, i) + '_';
else
parEl.innerHTML = '<a' + res[1] + '>' + res[2].substring(0, i) + '_</a>';
if (i++ == msg[k].length)
{
i = 0;
window.setTimeout(function() { this.respell(k, i); }, 3000);
k = (k + 1) == msg.length ? 0 : k + 1;
}
else
window.setTimeout(function() { this.respell(k, i); }, 50);
}
window.respell = this.respell;
this.respell(0, 0);
}
window.onload = function()
{
new Ticker('derletztekick', ['Dieser Ticker stammt von', '<a href="http://derletztekick.com">derletztekick.com</a>', 'GNU-LGPL']);
} |
Micha |
| geschrieben von struppi57 am 09.10.2007 - 17:15 |
Vielen herzlichen Dank an die Cracks
...Now it works!
'Habe mir heute ein Buch gekauft von Addison-Wesley:
Karsten Saramaschke / Java 6
verschwinde nun wieder in die Versenkung
Gruß, Thomas |
| geschrieben von René am 09.10.2007 - 17:18 |
@Micha,
habe mir erlaubt deinen Code noch etwas zu ändern, blau markiert.
new RegExp('...', 'i');
----
@Thomas,
wir sind hier bei JavaScript und nicht bei Java, das sind zwei paar verschiedene Turnschuhe! |
| geschrieben von Micha am 09.10.2007 - 19:43 |
Hi,
richtig, Groß- und Kleinschreibung sollte unberücksichtigt bleiben beim Ausdruck! Trotzdem ist es nicht perfekt. Einen Eintrag wie "Suche bei <a href="http://google.de">goolgle</a> und Du wirst schlau" wird der RegExp falsch erkennen. Auch mehrere URIs im Text werden unzureichend erkannt.
Das ersten Problem könnte man versuchen mit | HTML-Quelltext | 1:
| var exp = new RegExp('(.*?)<a(.+?)>(.+?)<\/a>(.*)', 'i'); |
zu lösen.
Nicht schön aber naja...
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
| /**
*
* NewsTicker JavaScript
* (c) 2007 by Michael Loesler - http://derletztekick.com
* modified by René Marscheider - http://janaserver.de/
* LGPL
*
**/
function Ticker(id, msg)
{
var parEl = null;
if (!(parEl = document.getElementById(id)) || (typeof msg != 'object'))
{
window.alert('Konnte Ticker nicht initialisieren!');
return;
}
this.respell = function(k, i)
{
var exp = new RegExp(/(.*?)<a(.+?)>(.+?)<\/a>(.*)/i);
var res = exp.exec(msg[k]);
if (res == null)
parEl.innerHTML = msg[k].substring(0, i) + '_';
else if (res.length==5)
if (i<res[1].length)
parEl.innerHTML = res[1].substring(0, i) + '_';
else if (i==res[1].length)
i = res[1].length+res[2].length+3;
else if (i<res[0].length-res[4].length)
parEl.innerHTML = res[1].toString() + "<a" + res[2] + ">" + res[3].substring(0, i-(res[1].length+res[2].length+3)) + "<\/a>_";
else
parEl.innerHTML = res[1].toString() + "<a" + res[2] + ">" + res[3].toString() + "<\/a>" + res[4].substring(0, i-(res[1].length+res[2].length+res[3].length+4)) +"_";
if (i++ == msg[k].length)
{
i = 0;
window.setTimeout(function() { this.respell(k, i); }, 3000);
k = (k + 1) == msg.length ? 0 : k + 1;
}
else
window.setTimeout(function() { this.respell(k, i); }, 50);
}
window.respell = this.respell;
this.respell(0, 0);
}
window.onload = function()
{
new Ticker('derletztekick', ['Dieser Ticker stammt von', 'Micha\'s Seite: <a href="http://derletztekick.com">derletztekick.com</a> und ist kostenlos', 'Erweitert von <a href="http://janaserver.de/">René</a>','GNU-LGPL']);
} |
Micha |
| geschrieben von struppi57 am 10.10.2007 - 07:52 |
| Zitat | | | Original geschrieben von René am 09.10.2007 - 17:18
@Thomas,
wir sind hier bei JavaScript und nicht bei Java, das sind zwei paar verschiedene Turnschuhe! |
Hallo Renè
...das Stimmt! In Wikipedia ist der Unterschied der zwei Sprachen recht gut erläutert. => Ein interessantes Buch aber ein Fehlkauf
Danke einstweilen
Thomas
|
|