Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS]Dodawanie linkow
Forum PHP.pl > Forum > Przedszkole
szaryBURY
Witam chcialbym dodac normalny htmlowski link poprze js. Chcialby to zrobic tworzac nowy element i przyporzadkowujac go jako dziecko innego elementu. Probuje cos takiego

  1. <script type="text/javascript">
  2. window.onload = Laduj;
  3.  
  4. function Laduj()
  5. {
  6.  
  7.  
  8.  
  9. var newlink = document.createElement('a');
  10. newlink.setAttribute('href', 'index.php');
  11. di = document.getElementById('mis');
  12. di.appendChild(newlink);
  13.  
  14.  
  15. }
  16. </head>
  17.  
  18. <div id="mis">kupa</div>
  19. </body>
  20. </html>


Lecz nic sie nie dzieje. Co powinienem dodac/zmodyfikowac?
kamil4u
Wszystko robisz dobrze. Link się dodaje. Tyle, że tworzysz link: <a href="index.php"></a>, więc nie widzisz efektu( nie ma nic pomiędzy <a> ). Podpowiedź: innerHTML
szaryBURY
Te cfaniak inner html nie jest zgodny z DOMem, wolalbym go uniknac. Nie ma innej opcji?
kamil4u
Cytat
Te cfaniak

?

Cytat
inner html nie jest zgodny z DOMem

Skąd te nieprawdziwe informacje?

Użyj: innerText, textContent lub innerText . Każda przeglądarka ma trochę inaczej. Poczytaj!
AdIoS_Neo
Cytat(szaryBURY @ 12.07.2012, 00:27:19 ) *
Te cfaniak inner html nie jest zgodny z DOMem, wolalbym go uniknac. Nie ma innej opcji?

Ale brzydko ...
innerHTML w HTMLu
innerHTML w XHTMLu
poczytaj sobie ...
Odpowiadając - tak wiem, że to HTML5 ale nie napisałeś z jaką składnią nie jest zgodny
szaryBURY
Cytat(kamil4u @ 11.07.2012, 23:31:31 ) *
?


Skąd te nieprawdziwe informacje?

Użyj: innerText, textContent lub innerText . Każda przeglądarka ma trochę inaczej. Poczytaj!


Przepraszam, takl chcialem ubarwic troche dyskusje. A informacje przeczytalem w paru tutorialach.

Tak naprawde moj kod zwiazany jest z tworzeniem SVG

  1. var svgns = "http://www.w3.org/2000/svg";
  2. var xlinkns = "http://www.w3.org/1999/xlink";
  3.  
  4. var ATTR_MAP = {
  5. "className": "class",
  6. "svgHref": "href"
  7. }
  8.  
  9. var NS_MAP = {
  10. "svgHref": xlinkns
  11. };
  12.  
  13. function makeSVG(tag, attributes) {
  14. var elem = document.createElementNS(svgns, tag);
  15. for (var attribute in attributes) {
  16. var name = (attribute in ATTR_MAP ? ATTR_MAP[attribute] : attribute);
  17. var value = attributes[attribute];
  18. if (attribute in NS_MAP)
  19. elem.setAttributeNS(NS_MAP[attribute], name, value);
  20. else
  21. elem.setAttribute(name, value);
  22. }
  23. return elem;
  24. }


kiedy zrobie sobie
  1. var text = makeSVG("text", {id: "text1", x: "60", y: "60"});

i dodam text node jest ok.
Niestety przy dodaniu elementu "a" nic sie nie wyswietla.

Wiem ze pewnie powinienem uzyc innych tagow typu a, niestety nic nie daje rezultatu. Jakies podpowiedzi?
AdIoS_Neo
[JAVASCRIPT] pobierz, plaintext
  1. var a = makeSVG("a", {id: "link", x: "70", y: "60", "xlink:href":"http://google.pl", target: "_blank"});
  2. var text = makeSVG("text", {id: "text", fill:"yellow", x: "70", y: "60"});
  3. text.appendChild(document.createTextNode("link"));
  4. a.appendChild(text);
  5. document.getElementsByTagName("svg")[0].appendChild(a);
[JAVASCRIPT] pobierz, plaintext
jak zrobiłem tak to się napis pokazał ale ... nie da się go kliknąć, co dziwne gdy wejdziesz w źródło strony, skopiujesz kod linku z napisem (który został wygenerowany przez javascript) czyli to:
  1. <a id="link" x="70" y="60" xlink:href="http://google.pl" target="_blank"><text id="text" fill="yellow" x="70" y="60">link</text></a>
i wkleisz do dokumentu to link działa ... Oo
szaryBURY
Hmm dzieki, zawsze to jakas wskazowka. Poprobuje cos dam znac jak poszlo.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.