Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS]Dodawanie linkow
szaryBURY
post 11.07.2012, 22:38:13
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.07.2012

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
kamil4u
post 11.07.2012, 23:03:58
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
szaryBURY
post 11.07.2012, 23:27:19
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.07.2012

Ostrzeżenie: (0%)
-----


Te cfaniak inner html nie jest zgodny z DOMem, wolalbym go uniknac. Nie ma innej opcji?
Go to the top of the page
+Quote Post
kamil4u
post 11.07.2012, 23:31:31
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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!


--------------------
Go to the top of the page
+Quote Post
AdIoS_Neo
post 11.07.2012, 23:37:35
Post #5





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
szaryBURY
post 12.07.2012, 11:09:07
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.07.2012

Ostrzeżenie: (0%)
-----


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?

Ten post edytował szaryBURY 12.07.2012, 11:24:08
Go to the top of the page
+Quote Post
AdIoS_Neo
post 12.07.2012, 16:07:33
Post #7





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

Ostrzeżenie: (0%)
-----


[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
Go to the top of the page
+Quote Post
szaryBURY
post 12.07.2012, 21:47:57
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.07.2012

Ostrzeżenie: (0%)
-----


Hmm dzieki, zawsze to jakas wskazowka. Poprobuje cos dam znac jak poszlo.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 03:34