Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: Zdarzenie "zapisz element docelowy" ?

Witam
Mam skrypt podpięty od onClick linku dzięki któremu śledzę pobieranie plików za pomocą GA.
No ale tylko jak user "kliknie" w link. Jeden user kliknie, drugi nie - użyje "zapisz element docelowy jako" .....
Czy da się pozyskać informacje o akcjach (z odniesieniem do obiektu na którym akcję wykonano)
inicjowanych przez popupmenu ?

konto usunięte

Temat: Zdarzenie "zapisz element docelowy" ?

nie

możesz:

1) przechwytywać kliknięcie prawym przyciskiem myszy na linku, ale nie wiesz co dalej użytkownik z tym robi

2) zastąpić standardowe menu jakimś swoim, w którym podepniesz zdarzenia (nie zadziała na każdej przeglądarce)

3) przerzucić pobieranie na serwer (zamiast plik.exe zrobisz download/plik.exe) i w akcji "download" zliczysz pobranie, po czym wyślesz plik (moim zdaniem w większości przypadków to najlepszy sposób)

4) przerzucić zliczanie pobrań na serwer (analizując logi)

;)

konto usunięte

Temat: Zdarzenie "zapisz element docelowy" ?

Tego nie przeskoczysz. Przechwytywanie prawego przycisku myszy nie ma sensu z prostej przyczyny - tylko wkurzysz wielu ludzi.
Proponował bym coś z pozostałych opcji. Albo przepuszczaj plik przez PHP (dla małych plików, dla dużych zainteresuj się xsendfile):
https://tn123.org/mod_xsendfile/

albo zagoń serwer do tej roboty.
Jacek Kozioł

Jacek Kozioł Web Developer,
Webmaster

Temat: Zdarzenie "zapisz element docelowy" ?

A może takie rozwiązanie Cię usatysfakcjonuje :)
<script type="text/javascript">
function getCursorPosition(e) {
e = e || window.event;
var cursor = {x:0, y:0};
if (e.pageX || e.pageY) {
cursor.x = e.pageX;
cursor.y = e.pageY;
}
else {
var de = document.documentElement;
var b = document.body;
cursor.x = e.clientX +
(de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
cursor.y = e.clientY +
(de.scrollTop || b.scrollTop) - (de.clientTop || 0);
}
return cursor;
}

function createContextMenu(id){
var div = document.createElement('div');
div.id = 'conMenu_' + id;
div.innerHTML = "Zapisz element docelowy jako...";
//div.style.display = 'none';
div.style.position = 'absolute';
div.style.zIndex = '99999';
div.style.cursor = 'default';
div.style.border = '1px solid #777777';
div.style.backgroundColor = '#FFFFFF';
div.style.color = '#777777';
div.style.padding = '3px 7px';
div.style.fontSize = '11px';
document.body.appendChild(div);

div.onmouseout = function(){
div.style.display = 'none';
}

div.onclick = function(){
document.getElementById(id).click();
div.style.display = 'none';
}
}

function saveElementMenu(id) {
createContextMenu(id);
var divMenu = document.getElementById('conMenu_' + id);
var divForClick = document.getElementById(id);

divForClick.oncontextmenu = function(e){
divMenu.style.top = (getCursorPosition(e).y + 7) + 'px';
divMenu.style.left = (getCursorPosition(e).x + 7) + 'px';
divMenu.style.display = 'block';

return false;
}
}

(function(){
saveElementMenu('id_twojego_linku');
}
)();


</script>
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: Zdarzenie "zapisz element docelowy" ?

Jacek Kozioł:
A może takie rozwiązanie Cię usatysfakcjonuje :)

To wyświetla padający śnieg, czy latającego za kursorem pieska na prawoklik?

PS. Tak, jestem wstrętny, ale to słaby skrypt, źle napisany, dziurawy i źle podany.Piotr Koszuliński edytował(a) ten post dnia 29.10.12 o godzinie 15:08
Jacek Kozioł

Jacek Kozioł Web Developer,
Webmaster

Temat: Zdarzenie "zapisz element docelowy" ?

Lepsze taki pomysł na rozwiązanie problemu niż żaden - a Twoja wypowiedź jest mało konstruktywna...
Poza tym, chodzi o to aby podać pomysł jak można rozwiązać problem a nie pisać coś w stylu 'jestem geniuszem ale zachowam to dla siebie'.
Masz rozwiązanie to je napisz, będziemy bardzo wdzięczni.
Pozdrawiam :)

konto usunięte

Temat: Zdarzenie "zapisz element docelowy" ?

Jacek Kozioł:
https://github.com/addyosmani/jQuery-contextMenu
Jacek Kozioł

Jacek Kozioł Web Developer,
Webmaster

Temat: Zdarzenie "zapisz element docelowy" ?

Kamil Brenk:
Jacek Kozioł:
https://github.com/addyosmani/jQuery-contextMenu

Tak, wiem że są gotowe rozwiązania, niemniej jednak jak już raz na forum wspomniałem, nigdy nie ma 100% pewności że ktoś korzysta z danego framework'a (np. jQuery) dlatego staram się poddawać rozwiązania w czystym JS. Nie zawsze ktoś chce zapinać całą bibliotekę aby zrobić drobnostkę, bo i po co.
Poza tym staram się jedynie poddać sposób rozwiązania problemu... bo i tak sam autor musi zdecydować co dla niego będzie najwygodniejsze :)

konto usunięte

Temat: Zdarzenie "zapisz element docelowy" ?

Jacek Kozioł:
Lepsze taki pomysł na rozwiązanie problemu niż żaden - a Twoja wypowiedź jest mało konstruktywna...
Poza tym, chodzi o to aby podać pomysł jak można rozwiązać problem a nie pisać coś w stylu 'jestem geniuszem ale zachowam to dla siebie'.
Masz rozwiązanie to je napisz, będziemy bardzo wdzięczni.
Pozdrawiam :)

czyli lepsze rozwiązanie "byle jakie, aby było"?!?
Jacek Kozioł

Jacek Kozioł Web Developer,
Webmaster

Temat: Zdarzenie "zapisz element docelowy" ?

Piotr L.:
Jacek Kozioł:
Lepsze taki pomysł na rozwiązanie problemu niż żaden - a Twoja wypowiedź jest mało konstruktywna...
Poza tym, chodzi o to aby podać pomysł jak można rozwiązać problem a nie pisać coś w stylu 'jestem geniuszem ale zachowam to dla siebie'.
Masz rozwiązanie to je napisz, będziemy bardzo wdzięczni.
Pozdrawiam :)

czyli lepsze rozwiązanie "byle jakie, aby było"?!?

Lepsza próba pomocy niż samozachwyt :)

konto usunięte

Temat: Zdarzenie "zapisz element docelowy" ?

Jacek Kozioł:
[ciach]

Lepsza próba pomocy niż samozachwyt :)

Zawsze oceniasz ludzi których nie znasz?
Jacek Kozioł

Jacek Kozioł Web Developer,
Webmaster

Temat: Zdarzenie "zapisz element docelowy" ?

Piotr L.:
Jacek Kozioł:
[ciach]

Lepsza próba pomocy niż samozachwyt :)

Zawsze oceniasz ludzi których nie znasz?

Wypowiedź nie na temat... :)
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: Zdarzenie "zapisz element docelowy" ?

Jacek Kozioł:
Lepsze taki pomysł na rozwiązanie problemu niż żaden - a Twoja wypowiedź jest mało konstruktywna...
Poza tym, chodzi o to aby podać pomysł jak można rozwiązać problem a nie pisać coś w stylu 'jestem geniuszem ale zachowam to dla siebie'.
Masz rozwiązanie to je napisz, będziemy bardzo wdzięczni.
Pozdrawiam :)

Gdyby to było jedyne rozwiązanie, to bym się nad nim pochylił i np. zaproponował poprawki. Tylko, że podane już zostały sensowne rozwiązania (które oceniłem jako wartościowe), a to po prostu nie przystawało do nich. Sama idea jest zła i nie pofatygowałeś się nawet by wkleić sformatowany kod. A dla swojego dobra takie podejście oceniam jak wyżej, bo nie zamierzam później tego widywać w projektach nad którymi pracuję.
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: Zdarzenie "zapisz element docelowy" ?

Zara przyjdzie leśniczy i was przegna z lasu ;))))

Ogólnie na temat patrze z dwu perspektyw: mojej stronki przy której sobie coś tam dłubie i potencjalnych aplikacji klient-serwer pracujących w oknie przeglądarki które mam zamiar kiedyś pisać.
Trochę mnie przeraża że duperele które w delphi załatwiają się same albo wymagają kilkunastu minut pracy w JS w przeglądarce wymagają "kombinowania jak koń pod górę"

Dochodzę powoli do wniosku że trzeba będzie chyba zacząć od stworzenia własnego
windowsa działającego w przeglądarce,
Pal sześć prawe menu ale niedawno szukałem pół nocy czy i jak (no i nie znalazłem) z jednego okna można wywołać drugie okno przeglądarki ( A z target="_blank" ) i zmusić je aby było modalne. Tragedia.
Piotr Koszuliński

Piotr Koszuliński JavaScript ninja

Temat: Zdarzenie "zapisz element docelowy" ?

Wojciech Mazurek:
Zara przyjdzie leśniczy i was przegna z lasu ;))))

Już sobie poszliśmy :P

Ogólnie na temat patrze z dwu perspektyw: mojej stronki przy której sobie coś tam dłubie i potencjalnych aplikacji klient-serwer pracujących w oknie przeglądarki które mam zamiar kiedyś pisać.
Trochę mnie przeraża że duperele które w delphi załatwiają się same albo wymagają kilkunastu minut pracy w JS w przeglądarce wymagają "kombinowania jak koń pod górę"

Dochodzę powoli do wniosku że trzeba będzie chyba zacząć od stworzenia własnego
windowsa działającego w przeglądarce,
Pal sześć prawe menu ale niedawno szukałem pół nocy czy i jak (no i nie znalazłem) z jednego okna można wywołać drugie okno przeglądarki ( A z target="_blank" ) i zmusić je aby było modalne. Tragedia.

Aplikacje webowe mają to do siebie, że sporo różnią się od aplikacji natywnych. Podobnie jak aplikacje mobilne od desktopowych. Różni się specyfika i różnią się możliwości. Nie twierdzę, że aplikacje webowe są lepsze, czy że mają większe możliwości. Często jesteśmy dużo bardziej ograniczeni i do tego dowalają nam różnice w przeglądarkach. Jednak kiedy weźmie się to pod uwagę, dobierze technologie do problemu, dostosuje swoje wymagania do możliwości webu i wykorzysta te możliwości które stanowią przewagę webu nad desktopem, wtedy można bez specjalnego kombinowania robić naprawdę dobre, atrakcyjne, dostępne, wygodne, użyteczne, szybkie i w ogóle fajne rzeczy :).

To taka uwaga ogólna - bez większego związku z przytoczonymi przez Ciebie problemami :).

konto usunięte

Temat: Zdarzenie "zapisz element docelowy" ?

Co Ci chyba inni chcieli powiedzieć to to że nie powinieneś naginać przeglądarek do aplikacji desktopowych bo rzeczywiście będziesz musiał się nakombinować jak koń pod górkę - od menu kontekstowego zaczynając.

Po prostu projektuj pod weba i wykonuj pod weba jeżeli to co robisz ma działać przez przeglądarkę internetową.

Weź to od drugiej strony, ostatnie miejsce gdzie szukał bym jakiejś opcji na stronie internetowej to prawy przycisk myszy.

konto usunięte

Temat: Zdarzenie "zapisz element docelowy" ?

Witam
Mam skrypt podpięty od onClick linku dzięki któremu śledzę pobieranie plików za pomocą GA.
No ale tylko jak user "kliknie" w link. Jeden user kliknie, drugi nie - użyje "zapisz element docelowy
jako" .....
a nie możesz, jak było już to wspomniane, robić to po stronie serwera? Zamiast linka do np. plik.exe, dajesz coś w stylu download.php?file=plik.exe. W pliku download.php skrypt powiększałby licznik o jeden, po czym robił przekierowanie na ten właściwy plik?
zmusić je aby było modalne.
przepis na modalność:
1. zamiast okna, zrób zwykłego diva, w którym umieścisz to, co byś umieścił w oknie. Zrób także button do zamykania.
2. zrób drugiego diva, półprzezroczystego i zasłaniającego cały ekran (position:fixed), będzie to nakładka.
3.zamiast otwierać nowe okno, wyświetlaj po prostu te 2 divy naraz. Nikt nic nie kliknie oprócz tego modalnego diva, dopóki go nie ukryjesz.
4. ewentualnie skorzystaj z jQuery dialog czy innych tego typu rzeczy.Łukasz Lityński edytował(a) ten post dnia 30.10.12 o godzinie 23:05
Jacek W.

Jacek W. Web Developer

Temat: Zdarzenie "zapisz element docelowy" ?

A może (zwłaszcza, że to onClick) zamiast linka użyć po prostu buttona? :) Przynajmniej kilka problemów zniknie ;)
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: Zdarzenie "zapisz element docelowy" ?

albo zagoń serwer do tej roboty.

... a może wcale nie bawić się w hostowanie tego pliku, zabawe z backendowymi czy frontendowymi rozwiązaniami, dobijając swoj hosting, itp, itd tylko....

zapakować to na jakiś darmowy zewnetrzny serwer z którego user to sobie może ściągnąć jak chce a który udostępnia statystyki ???

Pewnie z pięć kliknięć aby założyć konto i wgrać plik, i copy/paste link do swojego kodu.

TAF
Andrzej Prażmo

Andrzej Prażmo programista .NET,
właściciel firmy SEE
Software

Temat: Zdarzenie "zapisz element docelowy" ?

Wojciech Mazurek:
Pal sześć prawe menu ale niedawno szukałem pół nocy czy i jak (no i nie znalazłem) z jednego okna można wywołać drugie okno przeglądarki ( A z target="_blank" ) i zmusić je aby było modalne. Tragedia.
A kto się teraz bawi w odpalanie drugiego okna? O JQuery UI słyszałeś?
http://jqueryui.com/

Następna dyskusja:

Dodatkowy aktywny element d...




Wyślij zaproszenie do