ďťż

[Java Script] Graficzny edytor BBcode nie działa po przypisaniu do przycisku

       

Podstrony


telcocafe

Witajcie!
Napisałem sobie do mojego edytora BBcode taką funkcje:
var bold_ = 0; function bold () { if (bold_==0) { window.document.editform.post.value = window.document.editform.post.value + "[b]"; bold_++; } else { window.document.editform.post.value = window.document.editform.post.value + "[/b]"; bold_--; } }
Gdy ją przypisze do przycisku:
onclick="bold ();"
Po kiknięciu wyskakuje błąd, że nie może sie odwołać do właściwości/metody.
Pomóżcie!



hmm.. jak juz pisz function bold() - bez spacji - po mojemu bezpieczniej ;)

a co do kodu.. czasem przegladarki roznie interpretuja obiekty i sciezki do nich.. skoro obiekt masz nazwany, stworz zmienna, ktora wyszukuje obiekt i przypisuje sobie wskaznik do szukanego obiektu.
Ta metoda jest obecnie czesto stosowana, by bylo zgodnie w wielu przegladarkach.
Poczytaj o DOM.

edit: zamiast
window.document.editform.post.value + "[ b ]"; zrob "[b]" + window.document.editform.post.value; bo tak to chyba mialo byc ;)
Użytkownik DJ_ProG edytował ten post 19 kwiecień 2006, 15:35
Raczej nie miało tak być - zobacz co się stanie - [b ] zostanie dodany na samym początku tekstu.

Spróbuj coś takiego:
function WstawBB(tekst) { if (navigator.appName=='Microsoft Internet Explorer') { //ahh jak ja to lubie;) document.editform.post.value=document.editform.post.value+tekst; } else { document.getElementById('post').value=document.editform.getElementById('post' ).value+tekst; } }

Wywołanie, np w onclick:
WstawBB('[b] [/b]'); WstawBB['[i] [/i]');
I tak dalej. Imho bardziej uniwersalna i wygodniejsza metoda, bo wymaga tylko jednej funkcji.

Notka: Użyłem tutaj wykrywanie IE, gdyż ta przeglądarka jak zwykle własne wymysły obsluguje. W operze i mozilli powinno działać z getElementById.
Użytkownik Einzeinbleth edytował ten post 19 kwiecień 2006, 16:04
Einzeinbleth autorowi tematu chodziło raczej żeby przycisk dodający dodawał lub a nie obydwa naraz :) W każdym razie kiedyś taką funkcję napisałem:function AddBBcode(formularz, co) {  if( formularz.value == '['+co+']')  {    formularz.value = '[/'+co+']';    formularz.form.nazwa.value += '['+co+']';  }  else  {    formularz.value = '['+co+']';    formularz.form.nazwa.value += '[/'+co+']';  }  formularz.form.nazwa.focus(); }
i wywołanie<form> <input type="button" value="[b]" onclick="javascript:AddBBcode(this, 'b')" style="width: 40px" /> <input type="button" value="[i]" onclick="javascript:AddBBcode(this, 'i')" style="width: 40px" /> <input type="button" value="[u]" onclick="javascript:AddBBcode(this, 'u')" style="width: 40px" /> <br /> <textarea name="nazwa" rows="10" cols="50"></textarea> </form>
//Edit------
Zapomniałem dodać... działa w ff i ie więc w innych przeglądarkach pewnie też.
Użytkownik reVis edytował ten post 19 kwiecień 2006, 19:23


No dzięki :)
Ale mam pytanie; co to 'robi'?
formularz.form.nazwa.focus();


No dzięki :)
Ale mam pytanie; co to 'robi'?
formularz.form.nazwa.focus();

Dzięki :)
Ale czy wie ktoś dlaczego mój skrypt nie działa?

reVis, moge użyć Twojego skryptu w moim CMSie?
//EDIT
Sam już rozwiązałem problem z moim skryptem, więc nie potrzebuje skryptu reVisa.
:)
Użytkownik n4ever edytował ten post 21 kwiecień 2006, 13:12
Jasne nie roszcze sobie do niego żadnych praw :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.