Delphi-PRAXiS

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.

annonyme 28. Mär 2007 11:04

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Code:
<script language="JavaScript">
<!--
function repl(){
  var links=document.getElementsByTagName("a");
  for(var i=0;i<links.length;i++){
     if(links[i].innerHTML!=null){
         links[i].innerHTML=links[i].innerHTML.substr(0,1);
     }
  }
}
//-->
</script>
getestet mit Firefox 1.0

DP-Maintenance 28. Mär 2007 11:11

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Klatsch und Tratsch" nach "Programmieren allgemein" verschoben.
Es geht ums Programmieren, daher passt\\\'s dort besser.

r2c2 29. Mär 2007 10:45

*seufz*

Es geht auch mit DOM. Wenn es nicht ginge, gäbs ja gar keinen offiziellen sauberen weg und das wär n Arbutszeugnis für DOM...

*tippt*

Bitteschön:
XML-Code:
<html>
<head>
<title>Test</title>

<script language="JavaScript">
<!-- 
function DomTest(){ 
  var links=document.getElementsByTagName("a");
  for(var i=0;i<links.length;i++)
  { 
    links[i].firstChild.nodeValue = links[i].firstChild.nodeValue.substr(0,1);
  } 

//-->
</script>

</head>
<body onload="DomTest()">
[url="www.google.de"]google[/url]
[url="www.google.de"]google2[/url]
[url="www.google.de"]google3[/url]

</body>
</html>
Getestet unter IE7, FF 1.5 und Opera 9

mfg

Christian

FriFra 30. Mär 2007 08:47

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Danke, ".firstChild.nodeValue" gabs wohl noch nicht, als Stefan Münz seine Referenz geschrieben hat ;)
Jetzt funzts und ich hab etwas dazu gelernt :thumb:

r2c2 30. Mär 2007 09:08

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

Zitat von FriFra
Danke, ".firstChild.nodeValue" gabs wohl noch nicht, als Stefan Münz seine Referenz geschrieben hat ;)

:gruebel: Dreimal drafst du raten, wo ich das her hab... Guck dir nochmal die verlinkte Siete gaaaanz genau an...

mfg

Christian

FriFra 31. Mär 2007 18:21

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
:oops: hast recht... steht tatsächlich gaaanz unten ;)

r2c2 1. Apr 2007 15:11

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

Zitat von FriFra
steht tatsächlich gaaanz unten ;)

:gruebel: unten? Oder war das jetzt ironisch gemeint?

mfg

Christian

FriFra 1. Apr 2007 20:10

Re: JavaScript: text von Verweiszielen mit Mozilla ändern
 
Nein, das war nicht ironisch gemeint. Die relevanten properties Child und node sind tatsächlich eher in einem Nebensatz am Ende erwähnt :cyclops: ...

r2c2 2. Apr 2007 19:38

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

Zitat von FriFra
Nein, das war nicht ironisch gemeint. Die relevanten properties Child und node sind tatsächlich eher in einem Nebensatz am Ende erwähnt :cyclops: ...

:gruebel: Naja, von mir aus. Für mich steht eigentlich alles im ersten Beispiel, aber das is ja eigentlich nebensächlich. Wir müssen ja nicht drüber diskutieren an welcher Stelle jetzt die Lösung steht. Bevor wir also jetzt ganz vom Thema abkommen, BTT: Wenn du noch Fragen haben solltest, frag...

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr.

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