ďťż
Podstrony
|
telcocafeProblem jest taki napisałem skrypt który uruchamia kolejno 2 okna prompt dane zapisywane sa do zmiennych i potem z tych dwóch zmiennych powstaje kolejna:to co mam w headzie: <script language="Javascript"> function href() { l = prompt("Prosze wprowadz link","http://"); n = prompt("Podaj nazwę jaką ma nosić link","Nazwa"); c = "<a href=”" + l + "”>" + n + "</a>"; } </script> to jest w body: <form action="index.php?action=sitessettings&id=2" method="post"> <table border="10" bordercolor="pink"><tr><td height="50"><input type="button" class="pink" value="HREF" wrap="virtual" onclick="href()"><P>Oto prosty edtytor któy pozwol Ci w łatwy sposób wprowadzać treść</td></tr> <tr><td><textarea name="sitetext" rows="15" cols="75"></textarea> </td></tr><tr><td><input type="submit" value="Dodaj strone"></table></form> strona jest robiona w php i chcę zbudować takiego własnego CMS'a i stwierdziłem, że wykorzystam do tego js'a, chodzi mi dokładnie o to aby po wykonaniu funkcji href() wartość zmiennej c znalazła się w textarea z góry dzięki i proszę o szybką i fachową odpowiedź:) niestety moje mozliwosci samodzielnego pisania skryptów nie są jeszcze wystarczające:) Masz ładnie wszystko opisane (a nawet więcej, jak mniemam): http://parentnode.or...ursor-position/ ;) hehe wielkie dzięki:) mam nadzieję ze się połapię:) :( jednak aż tak dobry nie jestem oto problem: wykorzystując ten kod z którego co nieco kojarzę jak działa: <script type="text/javascript"> function insertAtCaret(obj, text) { if(document.selection) { obj.focus(); var orig = obj.value.replace(/\r\n/g, "\n"); var range = document.selection.createRange(); if(range.parentElement() != obj) { return false; } range.text = text; var actual = tmp = obj.value.replace(/\r\n/g, "\n"); for(var diff = 0; diff < orig.length; diff++) { if(orig.charAt(diff) != actual.charAt(diff)) break; } for(var index = 0, start = 0; tmp.match(text) && (tmp = tmp.replace(text, "")) && index <= diff; index = start + text.length ) { start = actual.indexOf(text, index); } } else if(obj.selectionstart) { var start = obj.selectionstart; var end = obj.selectionend; obj.value = obj.value.substr(0, start) + text + obj.value.substr(end, obj.value.length); } if(start != null) { setCaretTo(obj, start + text.length); } else { obj.value += text; } } function setCaretTo(obj, pos) { if(obj.createTextRange) { var range = obj.createTextRange(); range.move('character', pos); range.select(); } else if(obj.selectionstart) { obj.focus(); obj.setSelectionRange(pos, pos); } } </script> tak funkcja ma 2 parametry obj i text teraz chcę to zastosowac do mojego problemu i mam pytania czy mogę wywołać tą funkcję w tej mojej?czy do mojego zastosowania wymaga ona modyfikacji?(jak tak to jakich?)czy to zadziała w ten sposób?? <script language="Javascript"> function href() { l = prompt("Prosze wprowadz link","http://"); n = prompt("Podaj nazwę jaką ma nosić link","Nazwa"); c = "<a href=”" + l + "”>" + n + "</a>"; insertAtCaret(co tu, i tu?) } </script> co w moim przypadku ma się znaleźć w nawiasach? jak nie wiecie o co mi chodzi to odsyłam do pierwszego mojego postu lub podanego przez kolegę linka:)wartosc c ma się znaleźć w textarea jak to zrobic? Użytkownik szczepan edytował ten post 14 czerwiec 2007, 14:42 czekam na propozycje:) hmm postudiowałem ten kod i z tego wyniklo ze mam napisać coś takiego:<script language="Javascript"> function href() { l = prompt("Prosze wprowadz link","http://"); n = prompt("Podaj nazwę jaką ma nosić link","Nazwa"); c = "<a href=”" + l + "”>" + n + "</a>"; insertAtCaret(this.form.sitetext, this.form.c.value); } </script> czy to może działać w ten sposób?? sistext to nazwa mojego textarea a c to nazwa zmiennej którą próbuję wrzucić do textarea :) Użytkownik szczepan edytował ten post 14 czerwiec 2007, 14:56 function href() { l = prompt("Prosze wprowadz link","http://"); n = prompt("Podaj nazwę jaką ma nosić link","Nazwa"); c = "<a href=”" + l + "”>" + n + "</a>"; insertAtCaret(sitetext, c); } ALBO function href() { l = prompt("Prosze wprowadz link","http://"); n = prompt("Podaj nazwę jaką ma nosić link","Nazwa"); c = "<a href=”" + l + "”>" + n + "</a>"; insertAtCaret(this.form[0].sitetext, c); } muszę siebie i Ciebie zmartwić ale albo ja jestem głupi albo to naprawdę nie działa, czy to że strona jest robiona w php moze być powodem tego ze to nie działa? pasowałoby to zrobić tylko nie mam pojęcia juz z której strony to ugryść a to pierwsze rozwiązanie już stosowałem także nie mam pojęcia jak to ruszyć:) proszę o wyrozumiałość i pomoc:) dzięki ze w ogóle zajmujesz się takimi begginerami jak ja:) <html> <head> <title>bla</title> <script type="text/javascript"> function href(obj) { l = prompt("Prosze wprowadz link","http://"); n = prompt("Podaj nazwę jaką ma nosić link","Nazwa"); c = '<a href="' + l + '">' + n + '</a>'; insertAtCaret(obj, c); } function insertAtCaret(obj, text) { if(document.selection) { obj.focus(); var orig = obj.value.replace(/\r\n/g, "\n"); var range = document.selection.createRange(); if(range.parentElement() != obj) { return false; } range.text = text; var actual = tmp = obj.value.replace(/\r\n/g, "\n"); for(var diff = 0; diff < orig.length; diff++) { if(orig.charAt(diff) != actual.charAt(diff)) break; } for(var index = 0, start = 0; tmp.match(text) && (tmp = tmp.replace(text, "")) && index <= diff; index = start + text.length ) { start = actual.indexOf(text, index); } } else if(obj.selectionstart) { var start = obj.selectionstart; var end = obj.selectionend; obj.value = obj.value.substr(0, start) + text + obj.value.substr(end, obj.value.length); } if(start != null) { setCaretTo(obj, start + text.length); } else { obj.value += text; } } function setCaretTo(obj, pos) { if(obj.createTextRange) { var range = obj.createTextRange(); range.move('character', pos); range.select(); } else if(obj.selectionstart) { obj.focus(); obj.setSelectionRange(pos, pos); } } </script> </head> <body> <form> <textarea name="pole" id="pole" rows=10 cols=40></textarea> <input type="button" onclick="href(pole);" value="click me!" /> </form> </body> </html> Działa, przeanalizuj sobie kod ;) działa:):):) jesteś wielki:) dziękuje bardzo:) a czy mogę ten długi kod funkcji wklejającej cyknąć do pliku js? i naprzyklad wstawić przed tą moją funkcją w ten sposób?: <script SRC="wklej.js"> </SCRIPT> ?????? bo będę to wykorzystywał wielokrotnie jeszcze więc takie rozwiązanie byłoby wygodniejsze:D Raczej możesz tak zrobić, zmodyfikowana przeze mnie część jest... hmmm... podatna na różne nazwy textarea :) Najważniejsze jest, przy powtórnym wykorzystywaniu skryptu, to: <form> <textarea name="pole" id="pole" rows=10 cols=40></textarea> <input type="button" onclick="href(pole);" value="click me!" /> </form> Chodzi o wywołanie tej funkcji href z odpowiednim parametrem-nazwą obiektu texarea. dzięki:)właśnie tu był problem że nie wywoływałem tej funkcji z obiektem:) przynajmniej ja tak myślę:D:D |
|||
Sitedesign by AltusUmbrae. |