Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Wizualne wybieranie kodu HTML fragmentów strony
kodereq
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
dem
post
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
Go to the top of the page
+Quote Post
kodereq
post
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ą.
Go to the top of the page
+Quote Post
erix
post
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();
  // ...
}
Go to the top of the page
+Quote Post
kodereq
post
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 27.02.2009

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


@erix, jesteś wielki.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 01:17