Ru-Board.club
← Вернуться в раздел «Программы»

» Opera (часть 22)

Автор: Koyotero
Дата сообщения: 21.11.2012 14:00
Jakut88
Гляньте настройки Яндекса,должно стоять Страница результатов Открывать найденное:в новом окне.Если конечно речь об этом
Автор: Freeman_Ukraine
Дата сообщения: 21.11.2012 20:45
Jakut88
У меня была аналогичная проблема, так что я погуглил и нашел неожиданное решение: Настройки\Быстрые настройки - поставь галку на "Блокировать незапрашиваемые окна". Мне помогло, проверил в Яндексе и Гугле
Автор: VSHY
Дата сообщения: 21.11.2012 21:52
Раньше перевод выделенного в поле ввода текста был такой строкой:

Код: Item, "En -> Ru (Google)" = Go to Page, "javascript: (window.open('http://translate.google.com/#en/ru/'+encodeURIComponent(document.getSelection()),'','width=946,height=576,left=100,top=100,scrollbars=yes,location=no'))()",,, "lng_ru"
Автор: unreal666
Дата сообщения: 21.11.2012 23:21
VSHY

Цитата:
сейчас, с выходом 12.х, это не работает, приходится делать через %t:

v12.11 build 1655
Вполне себе работает.
Автор: VSHY
Дата сообщения: 22.11.2012 03:22
unreal666
Работает именно в полях ввода?

И ещё вопрос по ходу. Перестал работать код, копирующий выделенный текст в адресной строке и строке поиска ЭП:
Код: Item, "Yandex" = Copy,,,,"Yandex" & New Page & Go to Page, "javascript:location.href='http://www.yandex.ru/yandsearch?&text=%c';"
Автор: unreal666
Дата сообщения: 22.11.2012 07:26

Цитата:
Работает именно в полях ввода?

не обратил внимания.
Тогда да, не работает. Вообще по спецификации HTML5 метод getSelection и не должен работать для текста, выделенного внутри <input> или <textarea>. В более старых версиях Оперы это походу еще не было обговорено или был баг/фича.
Автор: LEX1
Дата сообщения: 22.11.2012 09:33
Vocoi
Флэш включён?

VSHY 22:52 21-11-2012
Цитата:
Раньше перевод выделенного в поле ввода текста был такой строкой

Не было такого. А вот IE-шный document.selection.createRange().text - работал везде.

Цитата:
Можно ли как-то сделать без %t и копирования, упростив этот код?

Упростив - наверное нет. Без копирования - первая функция отсюда.
Автор: Vocoi
Дата сообщения: 22.11.2012 10:02
Lex1 разумеется все включено.
Проблему решил сам, всю папку с виджетами, кэшем, настройками скопировал и удалил.
и дальше по одной папке начал заново вставлять уже в ново созданную самой оперой.
причина была в папке cache, без нее кнопки нажимались, а как снова её вставил в основную папку - кнопки перестали нажиматься. папка весила 44.7 мб. щас без нее,
но как я понял она и нафиг не нужна была. такие дела
Автор: Kostroma2011
Дата сообщения: 22.11.2012 10:26
Vocoi

Цитата:
причина была в папке cache

Один из приемов приведения Opera в чувство - чистить кеш и куки...
Кардинальный прием - установка в новую директорию...

Автор: SAT31
Дата сообщения: 22.11.2012 10:27
Kostroma2011

Цитата:
Один из приемов приведения Opera в чувство - чистить кеш и куки...

прием для любого браузера.
Автор: VSHY
Дата сообщения: 22.11.2012 12:01
unreal666

Цитата:
Вообще по спецификации HTML5 метод getSelection и не должен работать для текста, выделенного внутри <input> или <textarea>.
Можете подсказать метод, который работает в полях ввода?

Lex1

Цитата:
Не было такого.
Было. Такие пункты меню есть и у amr_now, и у других. Это работало до 12-й линейки.

Цитата:
А вот IE-шный document.selection.createRange().text - работал везде.
Что-то не могу заставить работать.. возможно с передачей параметров траблы. Можно увидеть пример Ваших контекстных меню?

И ещё вопрос по тексту выделенному в строке поиска ЭП или в адресной строке остался незамеченным. Тоже хотелось бы посмотреть пример кода, берущего этот текст, добавляющего к урлу и открывающего в новой вкладке. Если можно конечно.
Автор: LEX1
Дата сообщения: 22.11.2012 12:37
VSHY
Цитата:
метод, который работает в полях ввода?

t.value.substring(t.selectionStart, t.selectionEnd)


Цитата:
Было. Такие пункты меню есть и у amr_now, и у других. Это работало до 12-й линейки.

Вы что-то путаете. У amr-now в Edit Widget Translate menu используется предыдущая версия вышеупомянутого кода.


Цитата:
Что-то не могу заставить работать

Пройдя по ссылке можно было бы узнать, что работал он в opera < 10.5.

Добавлено:
VSHY 13:01 22-11-2012
Цитата:
И ещё вопрос по тексту выделенному в строке поиска ЭП или в адресной строке

Например: Item, "Yandex" = Copy,,,,"Yandex" & New Page & Go to Page, "y %c"
Автор: VSHY
Дата сообщения: 22.11.2012 12:55
LEX1
Да, я это видел, потому чуток было недоумение, что "работало - то хорошо, но я же сейчас хочу"))
Удалось использовать Ваш код для текста, выделенного в полях ввода; всё прекрасно работает.

Ещё такой вопрос: не хотелось бы размножать этот код в каждом пункте меню, потому поместил Вашу функцию в отдельный файл, указал путь для UserJS, использую функцию в коде пунктов меню, обновлял страницу, но почему-то эти пункты меню не отрабатывают. Подскажите пожалуйста, как это сделать.
Автор: cheepp
Дата сообщения: 22.11.2012 13:09
Есть в Опере один момент, который меня добивает.. Периодически, обновляясь, или непойми вобще с чего, исчезает список набранных сайтов в выпадающем меню адресной строки. Т.е. стрелка то есть, а ничего не выпадает если не неё нажать. Где взять набранные адреса в таком случае?
PS
Давно не пользовался Оперой, обновился до 12.11. Ох, чтож она такая тормозная(
Автор: SAT31
Дата сообщения: 22.11.2012 13:18
cheepp
что именно тормозит?
А набранные адреса могут исчезать из-за того, что вы очищаете данные (Меню - Настройки - Удалить личные данные) или пользуетесь чистильщиками.
Автор: LEX1
Дата сообщения: 22.11.2012 13:48
LEX1 10:33 22-11-2012
Цитата:
Не было такого.

Поправлюсь. Проверил 11.6 (я ей уже не пользовался) и там document.getSelection() (но не window.getSelection()) действительно работает и для input/textarea. Потом эту самодеятельность/баг исправили.

VSHY

Цитата:
потому поместил Вашу функцию в отдельный файл

Нужно убрать оттуда кириллицу (можно использовать http://dean.edwards.name/packer/ ) или сохранять в utf-8, кажется без bom.

Цитата:
Тоже хотелось бы посмотреть пример кода, берущего этот текст, добавляющего к урлу и открывающего в новой вкладке.

Ну про яндекс я написал, а более универсально это делается так
Код: [no]Item, "Yandex" = Copy,,,,"Yandex" & New Page & Go to Page, "http://www.yandex.ru/yandsearch?&text=%c"
[/no]
Автор: VSHY
Дата сообщения: 22.11.2012 14:18
LEX1
Кириллица нет, файл скрипта в utf-8 без bom, но в стрекозе вижу:

Код: (function() {
    window.open('http://lingvo.yandex.ru/en?text=' + getSel(window))
})()
Автор: LEX1
Дата сообщения: 22.11.2012 15:08
VSHY
А другие скрипты у вас работают? Можно добавить в начало этого «alert(1)» , перезагрузить страницу и если выскочит окошко, то всё нормально, а если нет, то проверяйте настройки для сайта.
Также можно добавить к имени функции префикс, для большей уникальности - скажем «ujs_getSel».
Автор: VSHY
Дата сообщения: 22.11.2012 15:22
LEX1
Других скриптов у меня нет.
Скрипты работают в части сайтов, а в части, как например в поле ввода сообщения на OperaFan, и здесь то же самое. Да, изменение имени функции уже пробовал, ничего не даёт, потому и написал здесь. Мне кажется, что это сайты что-то такое косячат, что не инициализируют объект user-скрипта.
У Вас этот код работает в окне добавления сообщения этого форума?

Добавлено:
Методом тыка понял в чём дело, - возникла мысля и попробовал сделать так:
1. У сайта убрал путь к его UserCSS-файлу, нажал Ok в диалоге.
2. Проверил работоспособность кода - работает.
3. Вернул обратно путь к UserCSS-файлу в "настойках для сайта", нажал Ok в диалоге.
4. Проверил работоспособность кода - работает!

Что делать со всеми другими сайтами (чтобы не проделывать эту манипуляцию, т.к. у меня есть user.css по умолчанию), - вопрос остаётся открытым...(
Автор: LEX1
Дата сообщения: 22.11.2012 15:44
VSHY
Втыкайте [more]
Код: [no](function(w){var s,d=w.document;if(d.selection){var r=d.selection.createRange();s=r?r.text:''}else{s=d.getSelection().toString();if(!s){var e,t=d.getElementsByTagName('textarea'),u=d.getElementsByTagName('input'),i=t.length;while(e=(i>0)?t[--i]:u[-i--])try{if(e.offsetHeight>0&&(s=e.value.substring(e.selectionStart,e.selectionEnd)))break}catch(x){}}};if(!s)for(var j=0,f;f=w.frames[j];j++){try{if(s=arguments.callee(f))break}catch(x){}};return s})(window)[/no]
Автор: VSHY
Дата сообщения: 22.11.2012 16:26
LEX1
Цитата:
Втыкайте Подробнее... вместо document.getSelection(), что ещё остаётся.
Скрипты, что был по первой ссылке и этот, отличаются только этими строками:
Код: if (s = getSel(f)) break;
Автор: LEX1
Дата сообщения: 22.11.2012 16:39
VSHY 17:26 22-11-2012
Цитата:
А можно ли как-то автоматизировать изменение override.ini в плане JavaScript=1

Прогнать мультизамену?

Цитата:
поясните пожал-ста, в чём отличие

Во втором случае у функции нет имени, она анонимная и чтобы ей рекурсивно вызывать себя и нужна arguments.callee - ссылка на саму выполняющуюся функцию.
Что лучше? Разницы нет, просто во втором случае проще замена, достаточно поменять document.getSelection() на этот код.
Автор: VSHY
Дата сообщения: 22.11.2012 17:41
LEX1
Мультизамену - понятно))
Я имел ввиду, что если по человечески, то параметр JavaScript=0 не должен писаться в override.ini, если явно не ставят галку для этого сайта, тогда бы для этого сайта использовалась глобальная настройка.
Хотелось чего-то похожего.

Цитата:
достаточно поменять document.getSelection() на этот код
У document'а переопределить метод getSelection() не смог, т.к. он вызывается в Вашем же коде, - получается зацикливание. А вот у window смог! И запись получилась короче!
Автор: amr_now
Дата сообщения: 22.11.2012 18:18
VSHY
прикрутил я эту функцию вместо document.getSelection(). Завтра выложу обновление переводчиков.
Заколебала эта Opera Software.
Каждые полгода что-нибудь отламывает.

Вот нахуа спрашивается постоянно ломать функции JavaScript?

Задолбали!
Автор: Rombus
Дата сообщения: 22.11.2012 18:59
Похоже отыскал причину загрузки процессора. Причиной оказалось расширение GMail Checker. Как-то упустил его сначала из виду и не отключил при поиске причины загрузки проца. Случайным образом, при помощи Anvir Task Manager напал на след. Как только отключил это расширение, загрузка резко упала. Сейчас вместо него поставил GMail Notifier - полёт нормальный. Так что может кому окажется полезной данная информация, есть смысл копать расширения при проблемах.
Автор: LEX1
Дата сообщения: 22.11.2012 19:08
amr_now

Цитата:
Заколебала эта Opera Software.
Каждые полгода что-нибудь отламывает.

https://bugzilla.mozilla.org/show_bug.cgi?id=776290

VSHY

Цитата:
Я имел ввиду, что если по человечески, то параметр JavaScript=0 не должен писаться в override.ini, если явно не ставят галку

Ну а кто спорит. Баг же.


Цитата:
А вот у window смог

Эээ... Вообще-то я имел в виду замену прямо в меню. Хотя скриптом можно и глобально, но менять лучше document.getSelection изменив в коде d.getSelection().toString() на w.getSelection().toString(), они сейчас одинаковые.
Автор: VSHY
Дата сообщения: 22.11.2012 19:53
amr_now
Цитата:
прикрутил я эту функцию вместо document.getSelection(). Завтра выложу обновление переводчиков.
Я уже тоже. Всё вынес в функции одного userjs-файла, т.к. задолбали эти простыни.

LEX1
Цитата:
но менять лучше document.getSelection
Почему именно его? Там же проблемы от рекурсивности? Думаю, что от window более безболезненно. Да и логично: от document'а - выделение только на странице, от window'а - везде (страница + поля).
Автор: LEX1
Дата сообщения: 22.11.2012 20:35
VSHY

Дело в том что document.getSelection() унаследован от Netscape и всё время возвращал просто текст (только недавно стандартописатели решили приравнять его к window.getSelection()). А вот window.getSelection() возвращает объект с кучей свойств и такая перезапись может просто сломать сайты, которые их используют.
Автор: cavstarica
Дата сообщения: 22.11.2012 22:14
У меня USB модем хуавей с сим билайн. При работе в опере(проверял несколько версий и мод) пропадает периодически соединение. Приходится подключаться заново. Как правило разрыв в начале сессии и потом по ходу, причём иногда работать совсем не возможно, а ночью получше вроде. Бился с проблемой 2 дня, почитал всем. паутину, проблема такая имеется, но вот связь и решение найти не удалось. Видимо опера обращается к серверам. Турбо отключено. Другие браузеры работают без проблем, приходится использовать мозилу, хотя к опере привык, конечно. Никто с подобным не сталкивался?
Автор: VSHY
Дата сообщения: 22.11.2012 23:21
LEX1
Понял. Только пока не получается сделать.

Ещё такой вопрос. Хочу взять выделенный текст (это url) и открыть его в фоновой вкладке. Код пункта меню есть, но он портит буфер обмена, т.е. работает через копирование (я поэтому почти все пункты меню переделал). Что уже не пробовал, но вместе открытие в фоновой вкладке и js window.open не хотят работать. Подскажите пожалуйста.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210

Предыдущая тема: Проблемы при открытии презентации в PowerPoint 2010


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.