Alert - jego wygląd

0

Witam,
Czy da się zamienić wygląd alert'a?
Mam taki kod:
<a onclick="alert('dsasd');">test</a>

Da się coś zrobić np: w css, szukałem w google ale nie mogę znaleźć?

0

Nie da się. Alert zależy w 100% od twórcy przeglądarki.

0

właśnie, że się da, trzeba nadpisać funkcję alert.

var alert = function( text) {
 // jakis kod, np:  $("#id_elementu").append(text + "<br />");
}

tylko to musi być wpisane gdzieś na początku dokumentu, przed innymi skryptami.
Możesz zrobić, żeby się wyświetlało dialog z Bootstrapa, albo przekierować alerty do console.log, albo wyłączyć...

0

Znalazłem skrypt,
http://jsfiddle.net/Y9ddP/
ale próbuję go przerobić aby wyświetlało nie alert tylko confirm, pomógłby mi ktoś?
Mam taki skrypt:
<a onclick="if(confirm(<?php echo "'test: ".$test."'"; ?>)) window.location.href='http://www.google.com';">

I muszę po naciśnięciu ok przejść pod ten link.

1

@LukeJL: Nie da się nadpisać alerta o takiej samej funkcjonalności. Alert (oraz confirm) ZATRZYMUJĄ kod javascript, aż do potwierdzenia okienka. Tego się nie da powtórzyć doklejając do kodu HTML.

@Arcaro: W związku z powyższym - confirm wymagałby innego kodu (na pewno nie umieszczonego w tagu onclick), spójrz na różnicę między normalnym confirmem, a ściemą DHTML-ową:

// zwykły confirm:
zrob_cos();
zrob_inne_cos(zmienna);
if (confirm('czy na pewno?')) {
  usun_cos(zmienna);
}
else {
  nic_nie_rob();
}
// tu możesz wkleić więcej kodu, który wykona się PO WYBRANIU którejś z opcji
zrob_costam_po_wybraniu_opcji();

// DHTML-owy confirm:
zrob_cos();
zrob_inne_cos(zmienna);
DHTMLconfirm(function(){
  // kod do wykonania gdy confirm będzie potwierdzony
  usun_cos(zmienna);
  zrob_costam_po_wybraniu_opcji();
},
function(){
  nic_nie_rob();
  zrob_costam_po_wybraniu_opcji();
});
// tutaj NIE MOŻESZ wkleić kodu po wybraniu którejś z opcji
// kod tutaj zostanie wykonany NATYCHMIAST po pokazaniu się okienka z pseudoconfirmem
// nic nie będzie czekać na wybór opcji

jeżeli kodu do wykonania po confirmie będzie więcej niż zrob_costam_po_wybraniu_opcji(); to pasuje to opakować w kolejną funkcję, żeby nie przeklejać tego do tych dwóch funkcji, przekazanych do DHTMLconfirm.

Generalnie - to nie jest już prosty if. Musisz poznać czym jest asynchroniczność, czym są callbacki, funkcje anonimowe. Nie są to podstawy i raczej nie rzeczy dla kogoś, kto miesza kod HTML z kodem PHP, w dodatku wklejając zmienne z PHP w kod JS wstawiony bezpośrednio w HTML w tagu onclick (ekstremalnie brzydkie praktyki, wskazujące na totalnie początkującego, który czyta złe źródła wiedzy, które uczą takich nawyków).

To samo tylko po angielsku i z klikalnymi przykładami z jQuery UI - http://stackoverflow.com/questions/7016658/javascript-confirm-replacement-with-return-true-false
Pominięto w tym problem kodu do wykonania po wybraniu którejkolwiek z opcji.

0

Próbowałem wstawić odnośnik do alert'a:
http://jsfiddle.net/yCkQ2/2/

No i nie działa,
można coś na to poradzić?

0

Masz tam błąd

<input type="button" value = "Test the alsssert" onclick="alert('<a href=\'?dolnoslaskie\'>Dolnośląskie</a>');" />

Ale to i tak w alercie nie wyrenderuje Ci linku a sam tekst. Przerzuć się na jakieś okienko modalne do wyświetlania tego typu komunikatów: http://www.jquery4u.com/windows/14-jquery-modal-dialog-boxes/

0
dzek69 napisał(a):

Nie da się nadpisać alerta o takiej samej funkcjonalności. Alert (oraz confirm) ZATRZYMUJĄ kod javascript, aż do potwierdzenia okienka. Tego się nie da powtórzyć doklejając do kodu HTML.

poznać czym jest asynchroniczność, czym są callbacki, funkcje anonimowe.

zgadza się, ale w praktyce to kwestia np. użycia callbacku przy własnym okienku confirm, pamiętając o tej asynchroniczności. Masz rację, że dla kogoś początkującego może to być trudne, ale jako tako nie ma w tym nic trudnego dla średnioogarniętego programisty, no i jest powszechną praktyką w JS.

Alert (oraz confirm) ZATRZYMUJĄ kod javascript,

Czyli są gorsze.

Tego się nie da powtórzyć doklejając do kodu HTML.

raczej odwrotnie - to co można zrobić w HTML raczej ciężko dokonać w zwykłym alercie czy confirm, skoro w alercie możesz tylko suchy tekst wrzucić, bez znaczników HTML, bez stylów, bez dodatkowych skryptów.

0

ale jako tako nie ma w tym nic trudnego dla średnioogarniętego programisty

OP raczej zaczyna się zdaje ;)

@LukeJL:

Czyli są gorsze.

Kwestia oceny gorsze/lepsze nie ma znaczenia. Ważne, że są INNE. I nie da się ich nadpisać zachowując ich funkcjonalność.

raczej odwrotnie (...)

nie odwrotnie. po prostu działa to w obie strony ;)

0

OP raczej zaczyna się zdaje

niby tak, ale w JS masę rzeczy się programuje albo w sposób zdarzeniowy, albo callbackowy. Nawet w jQuery (prostej jak drut bibliotece) są callbacki i nikomu się krzywda nie dzieje... myślę, że im wcześniej się to pozna, tym lepiej.

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