![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chodzi mi o rozwiązanie w JavaScript polegające na wybieraniu fragmentów strony poprzez klikanie myszą. http://www.iconico.com/HTMLExtractor/ - chodzi o narzędzie tego typu (dokładniej o tą jego część, w której po najechaniu myszą pojawia się kod HTML wybranej części strony). Rozwiązanie musi być zaimplementowane z użyciem JS/PHP. Obecnie robię to w ten sposób: parsuję kod HTML za pomocą PHP i eregami pod każde '<td ' podstawiam '<td onclick="alert(this.innerHTML)"' oraz np. zamieniam '<div ' na '<div onclick="alert(this.innerHTML)"'. Rozwiązanie w pełni działa i sprawdza się nieźle, jednak szukam czegoś lepszego. Bardzo proszę o sugestie. Ten post edytował kodereq 19.06.2009, 18:07:11 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 7 Dołączył: 24.01.2006 Skąd: lublin/wawa Ostrzeżenie: (0%) ![]() ![]() |
moja sugestia:
nie rob tego po stronie serwera tylko zrob po stronie przegladarki ;] Kod function test(obj) { alert(obj.innerHTML); } // a to ponizej niech sie wywoluje po zaladowaniu strony var allDivs = document.getElementsByTagName("div"); for (i=0; i < allDivs.length; i++) { allDivs[i].onclick = function() { test(allDivs[i]) }; } oczywiscie to jest pisane z palca i moze zawierac bledy.. to powinno dzialac jak tylko erix dopisze czego ja nie dopisalem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) :D:D nie mam sily poprostu kminic;] Ten post edytował dem 20.06.2009, 00:08:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję bardzo za odpowiedź. Dobrze, rozwiązanie jest skuteczne, ale niewystarczające - co np. z układem tabelarycznym ?
Tutaj głównym problemem wydaje się być niezawodność rozwiązania - trzeba zająć się wszystkimi kontenerami, co gorsza niektóre kontenery mogą być umieszczone wewnątrz innych kontenerów (jedno kliknięcie wywołuje kilka onclicków). Z niecierpliwością czekam na dodatkowe sugestie. Obecnie jestem na etapie podpinania onmouseover pod każdy div oraz td. Problemem jest tylko nie, że najeżdżając na np komórkę tabeli czasami najeżdżam na np 3 warstwy na raz, co wywołuje potrójnie daną akcję - chciałbym aby akcja była wykonana pojedyńczo - tylko na jednym elemencie - czyli np tylko na jednej komóce tabeli, a nie na komórce w której jest umieszczona tabela z tą komórką. |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat chciałbym aby akcja była wykonana pojedyńczo - tylko na jednym elemencie Jeśli masz podpinanie zdarzeń w mniej-więcej ten sposób: Kod function(e){
e.stopPropagation(); // ... } |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
@erix, jesteś wielki.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 01:17 |