ďťż
Podstrony
|
telcocafeWitajcie!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 :) |
|||
Sitedesign by AltusUmbrae. |