Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ostrzeżenie przed otwarciem linku
Forum PHP.pl > Forum > Przedszkole
mattteo
Witam,
mam do was prośbę mianowicie próbuję wdrożyć informację o tym, że po kliknięciu na link opuszcza się serwis itp...
zastanawiam się jak ugryźć temat java script czy css?
Może to być okienko coś w stylu popup i potwieredzenie czy napewno chcesz opuscic serwis
Pomożecie?

  1. <div class="www">
  2. <span><?php echo ___('www') ?>:</span>
  3. <a href="<?php echo Tools::link($offer->contact_data()->www) ?>" target="_blank"><?php echo URL::idna_decode($offer->contact_data()->www) ?></a>
  4. </div>


  1. }
  2. #contact_details-box .contact-meta .www i {
  3. margin-right: 12px;
  4. }
oxygeno
Prosta sprawa, rozwiązanie na szybko. Strzelam, że linki są powstawiane w widoku więc możesz dodać do tych linków data atrybut (do poczytania), który będziesz sobie łapał kliknięcie w taki atrybut w JS'ie i preventował standardowe zachowanie kliknięcia w link (preventDefault), a następnie pokazać popup, który będzie zawierał ostrzeżenie. W przypadku jak ktoś potwierdzi, to robisz redirect na wcześniej kliknięty link (możesz go pobrać z atrybutu href klikniętego elementu zawierający data atrybut przez ciebie zdefiniowany). To wszystko. wink.gif
Salvation
Cytat(oxygeno @ 26.06.2023, 22:56:00 ) *
(...) możesz dodać do tych linków data atrybut (...)

Nie trzeba dodawać daty. Domena jest znana (window.location.hostname lub window.location.origin), więc wszystko spoza domeny jest tym czego szukamy. Proponuję też patrzeć na atrybut [target], bo zazwyczaj externale są otwierane w nowym oknie - aczkolwiek to zależy od decyzji biznesowej.

Co do reszty wypowiedzi, to się zgadzam tongue.gif

Tutaj przykład w jQ jak pobrać wszystkie linki external i dodać do nich klasę: https://css-tricks.com/snippets/jquery/targ...external-links/
Dość łatwo to jednak przepisać na czysty JS.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.