Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   JavaScript: text von Verweiszielen mit Mozilla ändern (https://www.delphipraxis.net/89134-javascript-text-von-verweiszielen-mit-mozilla-aendern.html)

FriFra 26. Mär 2007 23:14


JavaScript: text von Verweiszielen mit Mozilla ändern
 
Ich durchlaufe in einer Schleife alle Links um deren Breite zu begrenzen:
XML-Code:
...
var MaxOffset=90;
while(document.links[n].offsetWidth>MaxOffset){
  if(document.links[n].innerText){
    document.links[n].innerText=document.links[n].innerText.substr(0,1)+'...'+document.links[n].innerText.substr(5,document.links[n].innerText.length-5);
    }
  else{
alert(document.links[n].text);
    document.links[n].text=document.links[n].text.substr(0,1)+'...'+document.links[n].text.substr(5,document.links[n].text.length-5);
    }
  }
...
der Teil mit dem innerText funzt im IE wunderbar ;), da Mozilla aber kein innerText kennt, habe ich es mit text versucht (nach else), allerdings ist das wohl ReadOnly :( ... wie bekomme ich die Texte auch un Firefox angepasst?

r2c2 27. Mär 2007 08:32

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Hallo FriFra :hi:
du benutzt hier das alte DHTML-Modell vom IE(all-Objekt). Willst du, dass auch Netscape-Derivate das verstehen, musst du entweder zusätzlich das ganze mit Layers implementieren(schlechte Idee), oder gleich DOM benutzen.

Da du das mit den Layers hoffentlich gleich wieder vergisst, gibts hier noch n Link zu DOM: http://de.selfhtml.org/dhtml/modelle/dom.htm :stupid:

mfg

Christian

annonyme 27. Mär 2007 12:25

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
ich weiß zwar nicht was innerText genau ist, aber ich hätte es einfach mal mit innerHTML probiert.

r2c2 27. Mär 2007 12:37

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Zitat:

Zitat von annonyme
ich weiß zwar nicht was innerText genau ist, aber ich hätte es einfach mal mit innerHTML probiert.

Das wär dann Möglichkeit 3, was zwar funktionieren sollte, aber trotzdem nicht so schön ist. N sauberen DOM-Ansatz halte ich für besser...

mfg

Christian

FriFra 27. Mär 2007 15:56

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Der Ansatz für den Zugriff auf das Objekt über DHTL oder DOM ist Grundsätzlich erstmal egal. Das Problem an der Sache ist, dass Mozilla die Eigenschaft Text nur ReadOnly kennt. Das Auslesen klappt also, aber das schreiben nicht... Wobei Mozilla in dem Punkt auch nur streng nach der Spezifikation geht, danach ist diese Eigenschaft tatsächlich ReadOnly :(
...innerText und innerHTML kennt Mozilla nicht :(

r2c2 27. Mär 2007 16:08

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Zitat:

Zitat von FriFra
Der Ansatz für den Zugriff auf das Objekt über DHTL oder DOM ist Grundsätzlich erstmal egal.

Ähm... du sollst dir nicht nur das Objekt per DOM holen, sondern mit dem auch auch DOM-mäßig arbeiten. Guck dir mal das erste Beispiel von der verlinkten Seite an...

Zitat:

...innerText und innerHTML kennt Mozilla nicht :(
Also selfHTML sagt FF ab Version 1.0 kennt innerHTML. Siehe: http://de.selfhtml.org/javascript/ob...htm#inner_html
DOM isses trotzdem nicht...

mfg

Christian

annonyme 28. Mär 2007 10:24

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Zitat:

Zitat von FriFra
innerHTML kennt Mozilla nicht :(

doch... funktioniert mit Mozilla ohne Probleme...

FriFra 28. Mär 2007 10:40

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Zitat:

Zitat von annonyme
doch... funktioniert mit Mozilla ohne Probleme...

Ich frage ab, ob .innerHTML verfügbar ist... bei Mozilla rennt aber in die else, also scheint er innerHTML offenbar doch nicht zu kennen.
Nach DOM, müsste jeder Link eine eigene ID haben, hat er aber nicht (auf die erzeugung de rLinks hab ich keinen Einfluss)...
XML-Code:
<script language="JavaScript">
function Init(){
  var MyLoader="/offline/maccess.nsf/loader?OpenPage";
  var TmpTitle=""
  var TmpURL=""
  var MaxOffset=80;
  for(n=0;n<document.links.length;n++){
    if(document.links[n].innerHTML){
      TmpTitle=encodeURI(document.links[n].innerHTML);}
    else{
      TmpTitle=encodeURI(document.links[n].text);}
    TmpURL=document.links[n].href.replace(/:/g, '%3A').split('/').join('%2F');
    document.links[n].href=MyLoader+"&title="+TmpTitle+"&url="+TmpURL;
    while(document.links[n].offsetWidth>MaxOffset){
      if(document.links[n].innerHTML){
        document.links[n].innerHTML=document.links[n].innerHTML.substr(0,1)+'...'+document.links[n].innerHTML.substr(5,document.links[n].innerText.length-5);}
      else{
        document.links[n].text=document.links[n].text.substr(0,1)+'...'+document.links[n].text.substr(5,document.links[n].text.length-5);}
      } 
    }
  }
</script>

annonyme 28. Mär 2007 10:55

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Zitat:

Ich frage ab, ob .innerHTML verfügbar ist... bei Mozilla rennt aber in die else, also scheint er innerHTML offenbar doch nicht zu kennen.
könnte auch am Rückgabewert von innerHTML liegen...

man müßte, glaube ich, prüfen ob innerHTML!=null ist.

FriFra 28. Mär 2007 11:01

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Zitat:

Zitat von annonyme
Zitat:

Ich frage ab, ob .innerHTML verfügbar ist... bei Mozilla rennt aber in die else, also scheint er innerHTML offenbar doch nicht zu kennen.
könnte auch am Rückgabewert von innerHTML liegen...

man müßte, glaube ich, prüfen ob innerHTML!=null ist.

Die Abfrage hatte ich ja ursprünglich erst eingebaut, weil Mozilla das "Objekt" innerHTML nicht gefunden hatte und eine entspr. JavaScript-Fehlermeldung kam.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz