profiT
|
User
|
|
|
Зарегистр: 13/11/2004
|
Сообщений: 224
|
Из: Караганда
|
|
|
После того, как мне указали на такую возможность в Файрфоксе, меня не покидала мысль, как это реализовать в Опере. И сделал. Заодно добавил стирание элемента страницы жестом.
Есть букмарклет на ОпераВики, но посмотрев его самого и его код, обнаружил, что он увеличивает размер у всех TEXTAREA, что при нескольких полях приведёт к прыганью макета, чего хотелось бы избежать.
Чтобы однозначно идентифицировать именно нужное поле, приделывается пользовательский скрипт. Есть подозрения, что вы с него поимеете побочные эффекты, но это потом исправлю. Сначала пусть народ заценит как работает.
Как это работает:
Жест "протянуть направо" на многострочном поле (TEXTAREA), увеличивает ширину поля. "Протянуть налево" -- уменьшает ширину.
Аналогично для жестов "протянуть вверх" и "протянуть вниз", они увеличивают/уменьшают высоту поля.
Вот что надо для этого сделать:
1. Скопировать два файла: пользовательский скрипт "lastHovered.js" и файл настройки мышиных жестов "resize and hide textareas.ini".
2. Пользовательский скрипт с путём, куда вы его положили, внести в ваш список скриптов в настройках.
3. Настройку мышиных жестов положить в папку "profile\mouse\". Если у вас уже есть своя настройка, объедините её текстовым редактором, там добавляются всего пять новых жестов: в разделе "Advanced"--"Edit widget" -- четыре, и в "Application" -- один сразу после заголовка.
Вот этот последний жест -- полный оборот по часовой стрелке, начиная с протяжки вверх (вверх-направо-вниз-влево) уничтожает элемент со страницы. В принципе, если этот жест выкинуть, то можно предполагать что побочные эффекты пользовательского скрипта сведуться на нет.
Есть мнение, что функционал можно расширить. Рацухи?
|
Stinger
|
Operaman
|
|
|
Зарегистр: 26/03/2004
|
Сообщений: 550
|
|
|
Re: Предлагаю жесты для изменения размеров TEXTAREA
07/05/2005 12:17
[Re: profiT]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
Отличная идея. А почему в раздел "Флейм" запостил? Это же новая фича Оперы . Этот солюшн достоин занять свое место в основном разделе форума, в FAQ и в Мастерской.
Проверил на работоспособность. По первым впечатлениями все работает с точностью отлаженного механизма. Resize текущего текстового поля можно делать по все четырем направлениям, уничтожение элемента также функционирует без особых проблем. О каких именно "побочных эффектах" ты говоришь?
В ответ на: 2. Пользовательский скрипт с путём, куда вы его положили, внести в ваш список скриптов в настройках.
Насколько я понимаю, подключить пользовательский JS-файл можно только один. У меня же несколько разных по назначению скриптов находятся в одном JS-файле:
1. Flash панель от VVSite
2. Скрипт для перевода "нестандартного" тэга ALT для картинок в тэг TITLE
3. Теперь добавил твой lastHovered.js
Все три скрипта прекрасно работают из одного файла.
В ответ на: Application" -- один сразу после заголовка.
Жест уничтожения элементов разумнее добавить в раздел жестов "Document Window". Мы же только на страницах убираем лишнее, поэтому трогать все приложение(Application) нет никакого смысла.
В ответ на: Есть мнение, что функционал можно расширить. Рацухи?
1. Возможно ли сделать управление resize'ом при помощи клавиатурных шорткатов? Как заставить JS-файл обрабатывать тот textarea, в котором находится клавиатурный курсор?
2. Жаль что в Опере нет мышиных жестов жестов по диагонали . Есть идеи с ними связанные, но в данный момент никак не реализуемые.
P.S: Спасибо за реализацию отличной идеи.
|
Kildor
|
Operaman
|
|
|
Зарегистр: 10/03/2004
|
Сообщений: 557
|
Из: Россия, Новосибирск
|
|
Re: Предлагаю жесты для изменения размеров TEXTAREA
07/05/2005 15:43
[Re: Stinger]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
В ответ на: Насколько я понимаю, подключить пользовательский JS-файл можно только один. У меня же несколько разных по назначению скриптов находятся в одном JS-файле:
неверно User JavaScript File=D:\Opera75\js\user.js,D:\Opera75\js\opera;opera,D:\Opera75\js\greasemonkey;greasemonkey
Суть понятна?
user.js — главный скрипт js\opera\ — папка, скрипты из которой имеют доступ к window.opera.addEventListener(string: type,function: handler,bool: phase), opera.defineMagicFunction(string: functionName,function: replacementFunction) и opera.defineMagicVariable(string: variableName,function: getter,function: setter)
js\greasemonkey\ — папка со скриптами из файрфоксового гризимонкей плагина. Не имеют доступа к opera.*, и кое какие отличия есть ещё
PS: У меня крутятся следующие скрипты: Flash панель, Alt » Title (тот же что и у тебя) SafeAlert — каждые 5 алертов на странице вылазит вопрос о том, что „не пора ли прекратить это безарбузие“… textfix.js — „ * This script makes URLs in text/plain documents clickable“ — надеюсь понятно… ;-) bodyIDforAll — прописывает id для тега body, чтоб удобнее было бы применять user css addCitationLinks — добавляет ссылку на атрибут cite в <blockquote> FULL cloacking — полностью сменяет идентификацию браузера (в том числе и window.opera, и так далее.) lj_tags — добавляет панель с тегами для текстарий в ЖЖ.
Сейчас ещё и этот добавлю…
Есть ещё несколько скриптов, которые хочу подключить, но они пока в нерабочем состоянии…
|
Kildor
|
Operaman
|
|
|
Зарегистр: 10/03/2004
|
Сообщений: 557
|
Из: Россия, Новосибирск
|
|
|
http://www.opera.com...ls/userjs/ — официальный туториал по ujs
|
Kildor
|
Operaman
|
|
|
Зарегистр: 10/03/2004
|
Сообщений: 557
|
Из: Россия, Новосибирск
|
|
|
не всегда он работает нормально Попробуй поизменять размеры арий с прописанными в стилях width и height, у меня Опера благополучно забивает на твои row+=5 и cols+=5 в этих случаях.
|
Stinger
|
Operaman
|
|
|
Зарегистр: 26/03/2004
|
Сообщений: 550
|
|
|
|
В ответ на: SafeAlert — каждые 5 алертов на странице вылазит вопрос о том, что „не пора ли прекратить это безарбузие“…
textfix.js — „ * This script makes URLs in text/plain documents clickable“ — надеюсь понятно… ;-)
bodyIDforAll — прописывает id для тега body, чтоб удобнее было бы применять user css
addCitationLinks — добавляет ссылку на атрибут cite в <blockquote>
FULL cloacking — полностью сменяет идентификацию браузера (в том числе и window.opera, и так далее.)
lj_tags — добавляет панель с тегами для текстарий в ЖЖ.
Где взять это добро? В особенности интересует textfix.js. Через google ничего не ищется.
|
Kildor
|
Operaman
|
|
|
Зарегистр: 10/03/2004
|
Сообщений: 557
|
Из: Россия, Новосибирск
|
|
|
конкретно текстфикс — http://virtuelvis.co.../textlinks вообще, погляди на этот сайт — неплохая подборка инфы по опере. http://www.howtocrea...cript.html — тут вроде бы что-то есть http://nontroppo.org...iki/UserJS — тут тоже что-то есть.
|
profiT
|
User
|
|
|
Зарегистр: 13/11/2004
|
Сообщений: 224
|
Из: Караганда
|
|
|
В ответ на: А почему в раздел "Флейм" запостил?
А куда вообще такие идеи складывать? В "Опера для Виндоус"? Или в "Опера для Линукс"? Работать-то эти скрипты будут везде. И уж всяко не в ветку про почту. Не сообразил куда, вот и написал откуда точно не прогонят.
В ответ на: Насколько я понимаю, подключить пользовательский JS-файл можно только один.
Согласно ОпереВике и Haavard'у можно и несколько. На себе опробовал -- работает. Странный синтаксис, но работает.
Несколько файлов:
Code:
c:\userJS\1.js,c:\userJS\2.js,c:\userJS\3.js
Все файлы с типом js из папки "c:\userJS\":
Code:
c:\userJS;userJS
Обратите внимание. Название последней папки без бэкслэша, и с повтором её имени через точку с запятой.
Можно комбинировать:
Code:
c:\temp\main.js,c:\userJS;userJS,c:\program files\mozilla firefox\greasemonkey\scripts;scripts
Перезагружать Оперу после изменения списка ползовательских скриптов или изменении какого-то из скриптов не надо.
В ответ на: О каких именно "побочных эффектах" ты говоришь?
Да это я сглупил. Отменяются "побочные эффекты". Мне показалось, что мой обработчик будет перекрывать уже существующие, но потом понял что ошибался -- на самом деле метод "attachEvent" ставит один обработчик за другим в очередь.
В ответ на: Жест уничтожения элементов разумнее добавить в раздел жестов "Document Window".
А и точно. Исправил-с. Берите обновлённую версию экстеншена к Опере "Resize TextArea 0.03" (хе-хе) в прикреплённом файле.
Заодно добавил восстановление всех уничтоженных элементов противоположным жестом: полный оборот против часовой стрелки, начиная с протяжки вниз (вниз--вправо--вверх--влево).
Заметьте, что, пусть для выполнения полных оборотов и нужен простор, но удалять можно и мелкие элементы: удаляемый элемент определяется по начальной точке жеста.
В ответ на: Возможно ли сделать управление resize'ом при помощи клавиатурных шорткатов? Как заставить JS-файл обрабатывать тот textarea, в котором находится клавиатурный курсор?
Надо добавить эту строчку:
Code:
obj.attachEvent('onFocus',doOnLastHoveredElement);
после строчки с 'onMouseOver'. Сделать это -- но проблемо. Проблемо состоитто в томо, чтобы найти незанятую и простую комбинацию для ресайза поля клавишами. Ctrl+Right -- занято, Shift+Right -- занято, может быть Ctrl+Alt+Right?
В ответ на: Жаль что в Опере нет мышиных жестов жестов по диагонали.
Да я и с четырьмя направлениями едва их запоминаю. Жать на кнопки в панелях мне как-то проще и нагляднее.
В ответ на: не всегда он работает нормально
Ага, есть такое. Так как привязывание всем элементам страницы обработчика занимает некоторое время (две секунды -- минимум, в завимости от сложности страницы может доходить до пяти-шести, это пока рекорд).
В ответ на: Попробуй поизменять размеры арий с прописанными в стилях width и height, у меня Опера благополучно забивает на твои row+=5 и cols+=5 в этих случаях.
Будем пробовать. Ждите следующей версии, у меня есть идеи на реализацию. Вот вспомню DOM до конца и будет.
Исправлено profiT (09/05/2005 09:11)
|
Dennis_HAWKS
|
User
|
|
|
Зарегистр: 11/09/2003
|
Сообщений: 238
|
Из: Молдова, Тирасполь
|
|
Re: Предлагаю жесты для изменения размеров TEXTAREA
11/05/2005 09:25
[Re: Kildor]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
Есть скрипт на greasemonkey - называется Expand TextArea - позволяет увеличивать textarea - в опере почему-то не работает. Может кто-то из JS гуру глянет его? http://www.stilleye....ea.user.js
у меня у самого стоят: alt2title.js - для исправления ошибок долбанутых веб-дезигнеров, которые не соблюдают стандарты и ставят атрибут alt вместо title для изображений. dingbats.js - конвертирует декоративные (dingbat) символы в соответствующие Юникодовые. fixbgb.js - ради ответного прикола создает надпись на сайте www.bengoodger.com/weblog/ такого содержания: Code:
The page you are reading is written by a narrow minded Firefox fanboy who does not like the fact that the browser you are using supports more CSS than Firefox. As a result, this page would normally contain a lie about Opera, but this has been removed by Opera's User JavaScript. Enjoy :)
fixtextplain.js - фиксит те сайты, страницы которых открываются в виде текстового кода из-за ошибочной настройки MIME-типов сервера. hide_google_adsense.user.js - прячет Google Adsense hide-adsense.js - тоже самое. удалить что ли один? menufix.js - фиксит некоторые неработающие менюшки на сайтах. Штука суперская. nofollow.js - добавляет декорацию nofollow линков перечеркиванием propagate_titles.js - улучшает подсказки на некоторых сайтах, особенно на форумах. safealert.js - описание уже было. sighider.user.js - прячет подпись юзеров на phpBB-форумах (а именно кучу изображений в подписи со всей подписью) sitesig.js - добавляет подпись для каждого сайта для управления ксс применительно для данного сайта. textfix.js - описание уже было. uhb.js + кнопка - делает выделение в результах поиска
|
Stinger
|
Operaman
|
|
|
Зарегистр: 26/03/2004
|
Сообщений: 550
|
|
|
Re: Предлагаю жесты для изменения размеров TEXTAREA
11/05/2005 20:53
[Re: Dennis_HAWKS]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
profiT
В ответ на: Надо добавить эту строчку: Code: obj.attachEvent('onFocus',doOnLastHoveredElement);
К сожалению не работает. У тебя есть еще идеи насчет того, как можно управлять ресайзом при помощи клавиатуры?
Dennis_HAWKS
В ответ на: у меня у самого стоят:
Брось пожалуйста эти JS-скрипты в аттаче одним архивом на форум. Многим пригодится.
|
Kildor
|
Operaman
|
|
|
Зарегистр: 10/03/2004
|
Сообщений: 557
|
Из: Россия, Новосибирск
|
|
|
кто знает английский, вот вот заработает http://userJS.org http://virtuelvis.co...userjs-org
|
Dennis_HAWKS
|
User
|
|
|
Зарегистр: 11/09/2003
|
Сообщений: 238
|
Из: Молдова, Тирасполь
|
|
|
Kildor
Угу, эта надпись уже как минимум две недели там висит.
Скрипты в приаттаченном архиве.
Исправлено Dennis_HAWKS (12/05/2005 06:14)
|
profiT
|
User
|
|
|
Зарегистр: 13/11/2004
|
Сообщений: 224
|
Из: Караганда
|
|
Re: Предлагаю жесты для изменения размеров TEXTAREA
14/05/2005 08:31
[Re: Dennis_HAWKS]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
Вчера ночью сидел, парился.
В ответ на: obj.attachEvent('onFocus',doOnLastHoveredElement);
К сожалению, не работает. У тебя есть еще идеи насчет того, как можно управлять ресайзом при помощи клавиатуры?
То ли с onFocus'ом, то ли с присвоением сразу двух обработчиков событий на один объект в одно время непонятные проблемы. Но!
Можно сделать так: "Right ctrl alt" вписать в раздел "Application" (иначе работать не будет, всё равно это сокращение в Опере не занято), на него посадить действие расширения поля (скопируйте из GestureRight). Тогда это сокращение будет работать когда курсор нависает над полем. Нормально?
В ответ на: Попробуй поизменять размеры арий с прописанными в стилях width и height, у меня Опера благополучно забивает на твои row+=5 и cols+=5 в этих случаях.
Теперь скрипт размеры в стилях перебивает.
Вот, расхвалил свой скрипт, а показать и нечего -- дома забыл.
|
Karfax
|
User
|
|
|
Зарегистр: 12/04/2005
|
Сообщений: 124
|
|
|
Re: Предлагаю жесты для изменения размеров TEXTAREA
14/05/2005 23:05
[Re: Stinger]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
В ответ на: Насколько я понимаю, подключить пользовательский JS-файл можно только один.
Сколько угодно (во всяком случае в 8-й версии, в других не смотрел). Заходишь в Настройки\Дополнительные\Содержание\Кнопка "Настройки JavaScript" и в поле "Мои JavaScrip файлы" выставляешь ПУТЬ К ПАПКЕ со скриптами. Потом кидай в эту папку сколь угодно скриптов.
|
Stinger
|
Operaman
|
|
|
Зарегистр: 26/03/2004
|
Сообщений: 550
|
|
|
Re: Предлагаю жесты для изменения размеров TEXTAREA
16/05/2005 23:21
[Re: Karfax]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
profiT
В ответ на: То ли с onFocus'ом, то ли с присвоением сразу двух обработчиков событий на один объект в одно время непонятные проблемы. Но!
Можно сделать так: "Right ctrl alt" вписать в раздел "Application" (иначе работать не будет, всё равно это сокращение в Опере не занято), на него посадить действие расширения поля (скопируйте из GestureRight). Тогда это сокращение будет работать когда курсор нависает над полем. Нормально?
Ресайз с клавиатуры все-равно не работает. Я пробовал закомментировать строчку с "onMouseOver" - результат тот же. Если оставить обе строки, тогда перестает работать ресайз мышинными жестами.
В ответ на: Теперь скрипт размеры в стилях перебивает.
Закинь сюда. Когда до дома доберешься .
|