[JS] Odczytanie atrybutu HREF z tagu A - problem

0

Witam,

W kodzie HTML mam następujący kawałek kodu:

<a href="baner_sitemap.jpg">A</a>

Do tagu 'a' dotarłem przez przeszukanie drzewa metodą:

document.getElementsByTagName("a");

Mając go zapisanego w zmiennej 'link' do atrybutu 'href' dostaję się w taki sposób:

var link = (...);
var href = link.href;

W ten sposób w zmiennej 'href' mam wartość z pełnych adresem (http://localhost/baner_sitemap.jpg) mimo, że w definicji mam tylko ścieżkę względną. Jak mogę rozwiązać ten problem?

Pozdrawiam,
Grzegorz Wiśniewski

0

link.getAttribute('href')

0

Ostrzegam: getAttribute('href') nie zadziała w IE. Tj. zwróci bezwzględny URL. Tak jest na pewno w IE6, nie pamiętam czy w IE7 też. Polecam to sprawdzić.

W razie czego, aby wyłuskać odpowiednią część URL-a (np. samą ścieżkę) można użyć wyrażeń regularnych (ang. regular expressions, w skrócie regexp lub regex).

0
bswierczynski napisał(a)

Ostrzegam: getAttribute('href') nie zadziała w IE. Tj. zwróci bezwzględny URL. Tak jest na pewno w IE6, nie pamiętam czy w IE7 też. Polecam to sprawdzić.

W razie czego, aby wyłuskać odpowiednią część URL-a (np. samą ścieżkę) można użyć wyrażeń regularnych (ang. regular expressions, w skrócie regexp lub regex).

Jest odpowiedni FIX dla ie 6 -

<script>for (x in document.write) { document.write(x);}</script>
0

@bordeux:
To nie FIX dla IE, tylko znany kod powodujący zawieszenie się IE i nie robiący nic innego.

Tu wchodzą również początkujący. Nie uważam, że to dobry pomysł wstawiać takie rzeczy zupełnie bez sensu, bez wyjaśnienia. Czy jak się nie ma nic merytorycznego do powiedzenia -- a to, co mamy do powiedzenia jest tylko szkodliwe dla newbies i wprowadza w błąd -- to nie lepiej się po prostu nie odzywać?

0
bswierczynski napisał(a)

@bordeux:
To nie FIX dla IE, tylko znany kod powodujący zawieszenie się IE i nie robiący nic innego.

Tu wchodzą również początkujący. Nie uważam, że to dobry pomysł wstawiać takie rzeczy zupełnie bez sensu, bez wyjaśnienia. Czy jak się nie ma nic merytorycznego do powiedzenia -- a to, co mamy do powiedzenia jest tylko szkodliwe dla newbies i wprowadza w błąd -- to nie lepiej się po prostu nie odzywać?

chcialem przekazac tym, zeby nie robił kodu dla IE 6 -> zwalnia to internet . Szkodliwe? W zadnym wypadku. To leczy!

0

To przy okazji nie zrobi kodu dla IE7. Sprawdziłem przed chwilą i tam też getAttribute('href') zwraca pełny URL.

Można to obejść stosując niestandardowe rozszerzenie getAttribute dodane przez Microsoft: drugi parametr będący flagami. Jeśli wywołamy getAttribute('href', 2), to powinien zostać zwrócony faktyczny łańcuch znaków, który znalazł się w dokumencie. Dla atrybutu href powinien to być względny URL (w przeciwieństwie do bezwzględnego), jeśli tak to jest zapisane w dokumencie.

Czytałem, że niektórym ludziom to czasem nie działa, ale z tego co sprawdziłem to jest OK.

1 użytkowników online, w tym zalogowanych: 0, gości: 1