Links Target beeinflussen .links[0].target
Bine
- javascript
Hallo
Suche schon den ganzen Tag ohne eine Antwort zu finden.
Kann man die Targetangabe auch unterhalb der document
Struktur finden und beeinflussen.
Was ich damit meine ist:
Beispiel:
------------------------
<html><head><title>Test</title>
</head><body>
<a href="http://xyz.de" target="was_auch_immer">gehe zu</a>
<script type="text/javascript">
alert(document.links[0].target)
</script>
</body></html>
------------------
So dass klappt: Meldung der targetangabe erscheint, aber..
Wenn ich nur einen bestimmten Bereich aus der seite haben will
dann gehts nicht, Warum ?
Beispiel:
------------------------
<html><head><title>Test</title>
</head><body>
<a href="http://xyz.de" target="a">gehe zu</a>
<a href="http://xyz.de" target="b">gehe zu</a>
<div id="bereich">
<a href="http://xyz.de" target="was_auch_immer">gehe zu</a>
</div>
<script type="text/javascript">
alert(document.bereich.links[0].target)
</script>
</body></html>
-----------------------------------
Der Sinn des Ganzen:
Eine automatisch generierte Seite mit vielen
Links. Alle Linkgruppen sind in verschieden divs
untergebracht, so dass ich eigentlich dachte ich könnte
einigen ausgewählten divs spezielle JS.Anweisungen geben.
Das klappt auch aber eben nicht mit links.
Hier möchte ich zum Beispiel in einem DIV alle Links die
das Attribut Target='_blank' haben, ein neues Target zuweisen.
Fazit:
Mit => document.links[i].target = "rechtes_fenster";
klappt es, bedeutet aber ALLE Links auf der Seite werden geändert
bzw einbezogen, leider nicht nur der Bereich den es betrifft.
Gibt es eine Lösung ?
Bine
hi,
<div id="bereich">
<a href="http://xyz.de" target="was_auch_immer">gehe zu</a>
</div><script type="text/javascript">
alert(document.bereich.links[0].target)
Wie kommst du darauf, dass document.bereich existieren würde?
Gibt es eine Lösung ?
getElementById(), ggf. gefolgt von getElementsByTagName().
gruß,
wahsaga
Hallo Wahsaga
<div id="bereich">
<a href="http://xyz.de" target="was_auch_immer">gehe zu</a>
</div>
getElementById(), ggf. gefolgt von getElementsByTagName().
na ja , probiert habe ich es aber klappt nicht.
alert(getElementById('bereich').links[0].target);
Bine
Hallo Bine,
getElementById(), ggf. gefolgt von getElementsByTagName().
na ja , probiert habe ich es aber klappt nicht.
weil du dem Wegweiser nicht bis zum Ende gefolgt bist.
alert(getElementById('bereich').links[0].target);
Das war nur der erste Teil - jetzt käme noch der Auftritt für getElementsByTagName(), den du leider nicht umgesetzt hast.
Die Collection links[] ist ein Unter-Objekt von document und enthält generell *alle* Links des Dokuments in der Reihenfolge ihres Auftretens im Quellcode. Ein beliebiges Element innerhalb des Dokuments hat keine links-Eigenschaft mehr. Deswegen ist dieser Ansatz für deine Aufgabenstellung nicht brauchbar.
Schönen Abend noch,
Martin
Hallo Martin
Die Collection links[] ist ein Unter-Objekt von document und enthält generell *alle* Links des Dokuments in der Reihenfolge ihres Auftretens im Quellcode. Ein beliebiges Element innerhalb des Dokuments hat keine links-Eigenschaft mehr. Deswegen ist dieser Ansatz für deine Aufgabenstellung nicht brauchbar.
AHA, das wars was ich den ganzen Tag gesucht habe.
Also geht's gar nicht wenn ich das richtig verstehe.
" Entweder alle Links oder keine "
Schade dachte müsste gehen.
Danke
Bine
Hello,
AHA, das wars was ich den ganzen Tag gesucht habe.
Also geht's gar nicht wenn ich das richtig verstehe.
" Entweder alle Links oder keine "
Schade dachte müsste gehen.
NEIN, LIES BITTE! Dir wurde empfohlen getElementById und danach getElementsByTagName abzufragen. Schau dir bitte dort das Beispiel an!
Erst gehst du in den Bereich, dann liest du dort alle Links aus, aber eben NICHT über .links (weil es das nur auf document-Ebene gibt), sondern indem du nach dem <a>-Tag suchst.
MfG
Rouven
Hallo Rouven
Erst gehst du in den Bereich, dann liest du dort alle Links aus, aber eben NICHT über .links (weil es das nur auf document-Ebene gibt), sondern indem du nach dem <a>-Tag suchst.
So mache ich das auch normalerweise, wie in deinem Link.
Aber in diesem Fall komme ich nicht weiter, weil ich
warscheinlich ein metergrosses Brett im Moment
vorm Kopf habe.
Folgendes habe ich probiert:
---------------------------------
<script type="text/javascript">
var bereich = document.getElementById("uno");
var lnk = bereich.getElementsByTagName("a");
</script>
=> Hier bekomme ich eine Targetangabe, aber nur
weil ich direkt auf die ID verweisen kann.
<p><a href="#" onclick="alert(link1.target);return false;">klicktest</a></p>
=> Ohne den Link zu kennen komm ich nicht hin.
<p><a href="#" onclick="alert(lnk[0].target);return false;">klicktest_2</a></p>
<p id="uno" style="background-color:#f6f6f6;height:50px;font-size:20px;">
<a id='link1' href="http://google.de" target="sysy">GOOGLEEEEEEEE</a><br>
<a id="link2" href="http://yahoo.de" target="sysy">Yahooooooooo</a>
</p>
------------------------------------
Was mache ich falsch ?
Bine
Hello,
<p id="uno" style="background-color:#f6f6f6;height:50px;font-size:20px;">
<a id='link1' href="http://google.de" target="sysy">GOOGLEEEEEEEE</a><br>
<a id="link2" href="http://yahoo.de" target="sysy">Yahooooooooo</a>
</p>
also sehe ich das richtig, dass du hier alles findest? Gut.
<p><a href="#" onclick="alert(lnk[0].target);return false;">klicktest_2</a></p>
Nun ja, woran willst du diesen Link identifizieren? Wonach suchst du überhaupt? Gibt es irgendein Eltern-Element mit, das eine ID hat? Wenn es das nicht gibt, dann gibt es natürlich auch keine Möglichkeit die Suche einzuschränken, dann musst du notgedrungen über alle Links im Dokument iterieren, aber was lies dich glauben, dass es eine Möglichkeit gäbe? Du hast gefragt ob man Links in einem Bereich lokalisieren kannst. Das <p> ist nur bedingt ein Bereich. Du kannst natürlich vorher document.getElementsByTagName("p") verwenden, aber du bekommst _auch_ wieder alle benannten (-> "uno") Abschnitte, von daher ist die Ersparnis wahrscheinlich gering.
Schließlich, wenn du noch einen Weg _hin_ zu diesem <p> wüsstest, also sowas wie "steht direkt vor dem <p id="uno">", dann könnte man dort über DOM hinnavigieren.
MfG
Rouven
Lieber Rouven,
also sehe ich das richtig, dass du hier alles findest? Gut.
Den Satz verstehe ich nicht.
, aber was lies dich glauben, dass es eine Möglichkeit gäbe? »»
Gibt es doch keine Möglichkeit ?
Ich habe leider nicht viel verstanden von dem was du
geschrieben hast,jetzt weiss ich nicht ob es geht und ich nur einen DenkFehler habe oder ob es gar nicht gehen kann.
Dank für deine Mühe
Bine
Hi,
<p id="abc">
...
</p>
Geht ohne Probleme (per ID an der <p>-Element ran, von dort per getElementsByTagName alle <a>-Elemente)
<p>
...
</p>
Geht auf Anhieb nicht, weil keine ID da ist um das <p> zu lokalisieren.
Du könntest:
3a) <p> liegt in einem anderen benannten Abschnitt:
<div id="ich_enthalte_das_p">
<p>
...
</p>
</div>
3b) <p> liegt in nachbarschafft eines benannten Elementes
<p id="abschnitt_vorher">
</p>
<p>
...
</p>
-> Suche per document.getElementById("abschnitt_vorher") das vorherige Element, geh dann per .nextSibling zum gesuchten <p>.
MfG
Rouven
Hi Rouven
</p>
-> Suche per document.getElementById("abschnitt_vorher") das vorherige Element, geh dann per .nextSibling zum gesuchten <p>.
Oweia, du wirst zunehmend kryptischer. Verstehe nur noch Bahnhof.
Trotzdem Danke für deine Mühe
Bine
Hi,
Oweia, du wirst zunehmend kryptischer. Verstehe nur noch Bahnhof.
hmpf? Da stand eigentlich alles drin. Aaaalso, nochmal:
<p id="abc">
Das hier ist ein Absatz; Er hat eine ID und kann daher leicht gefunden werden. Er enthält aber nicht die gesuchten Links
</p>
<p>
Hier ist der gesuchte Absatz, d.h. er enthält die Links, kann aber nicht per ID o.ä. angesprochen werden.
<a href="...">Link 1</a>
...
</p>
Wir wollen also die Links in dem "nicht identifizierbaren" <p> haben, wissen aber, dass es direkt hinter dem identifizierbaren <p id="abc"> steht.
Aber wie gesagt, das Szenario basiert darauf, dass du zumindest weißt wie du von einem identifizierbaren Element (z.B. mit einer ID) zu dem nicht identifizierbaren Element mit den Links hinkommst. Wenn du darüber überhaupt keine Informationen hast (unbekanntest HTML-Dokument), dann kommst du nicht umher bei deiner Ausgangsvariante zu bleiben und über alle Links drüber zu gehen.
MfG
Rouven
hmpf? Da stand eigentlich alles drin. Aaaalso, nochmal:
<p id="abc">
Das hier ist ein Absatz; Er hat eine ID und kann daher leicht gefunden werden. Er enthält aber nicht die gesuchten Links
</p>
Doch Rouven, siehe mein Beispiel die links sind
in dem identifizierbaren <p id=...>
------------------------------------
<p id="uno" style="background-color:#f6f6f6;height:50px;font-size:20px;">
<a id='link1' href="http://google.de" target="_self">GOOGLEEEEEEEE</a><br>
<a id="link2" href="http://yahoo.de" target="fenster_1">Yahooooooooo</a>
</p>
------------------------------
Ich finde auch dahin, nur eben nicht zu den Links und
somit erst recht nicht zur Target angabe.
Bine
Hi,
<p id="uno" style="background-color:#f6f6f6;height:50px;font-size:20px;">
<a id='link1' href="http://google.de" target="_self">GOOGLEEEEEEEE</a><br>
<a id="link2" href="http://yahoo.de" target="fenster_1">Yahooooooooo</a>
</p>
ja, aber das ist doch das "einfache" Szenario, ich dachte soweit wären wir schon.
MfG
Rouven