Sugerowany duplikat to pytanie, na podstawie którego otrzymałem podstawę dla tego pytania, więc jest to , a nie duplikat! W rzeczywistości, ja już zostały połączone na to pytanie od początku ...Wymuszenie zmiany rozmiaru podczas czytania tekstu z pliku
DOBRY EDIT:
Zrobiłem JSFiddle (mój pierwszy raz :)). Zwróć uwagę, że obszar tekstowy nie rozwija się zgodnie z oczekiwaniami. Wpisz coś wewnątrz textarea i natychmiast zmieni rozmiar.
Jeśli możemy automatycznie wysłać zdarzenie keypress, może zadziałać ... (this odpowiednie pytanie nie pomogło, odpowiedzi nie przyniosły skutku).
Używam textarea
jak jest z here. Następnie czytam z pliku i umieszczam zawartość wewnątrz pola tekstowego, ale nie jest ona zmieniana tak jak powinna.
zaktualizować pole tekstowe tak:
function updateTextbox(text) {
$('#cagetextbox').val(text);
};
jakieś pomysły?
Jestem na Firefoksie 34,0 w wersji kanonicznej, na Ubuntu 12.04, jeśli to odgrywa pewną rolę, co mam nadzieję, nie jest prawdą, ponieważ niektórzy z moich użytkowników korzystają z Chrome.
EDIT:
Próba byłoby napisać coś takiego:
$('#cagetextbox').attr("rows", how many rows does the new text contain);
Zauważ, że jeśli spróbujemy find out how many lines of text the textarea zawiera otrzymamy 1 jako odpowiedź.
EDIT_2
Może coś width/(length_of_line * font_size)
. Dla kilku testów wydaje się poprawne, jeśli odjęto 1 (zachowując tylko całkowitą część wyniku oczywiście).
to zazwyczaj najlepiej zrobić to tak duża, jak będzie pasować użyciu, powiedzmy, 'width: 100%; ', i pozwalając tekst wypełnij i przewiń w razie potrzeby, zamiast ryzykować zawyżenie rozmiaru okna w rzutni. – dandavis
Chciałbym zmienić rozmiar z różnych powodów @dandavis, ale dzięki za komentarz. – gsamaras
cóż, trudno jest określić rozmiar czcionki, z której będzie korzystać czcionka (zależnie od zoomu, preferencji użytkownika, systemu operacyjnego, rozmiaru os), co oznacza, że 'cols = n' to jedyny niezawodny sposób na zmianę rozmiaru to. więc musisz znaleźć szerokość najdłuższej linii i ustawić atrybuty 'cols' do tego' .cagetextbox.cols = Math.max.apply (null, text.split ("\ n"). map (function (a) {return a.length;})); ' – dandavis