Форум OperaFan
03-09-2010, 09:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Совет: Если хотите что-то сказать собеседнику лично, и других это не касается - не пишите в обсуждении. Лучше напишите ему личное сообщение - как только участник войдёт на форум, он сразу увидит уведомление, что ему пришло личное сообщение.
Страниц: 1 ... 11 12 [13] 14 15 ... 37
  Печать  
Автор Что такое UserJS, и с чем его едят
DimiON
Ветеран

Версия Opera: 10.70.last (Win7х64)
Сообщений: 1 744


Cлишком горячий ветеран


Просмотр профиля
16-12-2005, 09:07

http://operafan.net/content/view/26/2/
Цитировать


Opera – браузер для и во-имя пользователя. Поэтому в нём есть UserCSS (пользовательские стили) и UserJS (пользовательские скрипты). Это даёт лично вам возможность для произвольного изменения вида (UserCSS) или поведения страницы (UserJS). А затронем мы сегодня последнее, Оперный деликатес «специально, только для вас, и с красной ленточкой» – UserJS.

Но сначала нужно выполнить след. . .
Народ, подскажите пожалуйста, каким образом настроить внешний вид заметок в Robo sticky, чтобы изменить например цвет/шрифт заметки и т.д. ?
И ещё, каким образом сейчас вызывается создание заметки - hаньше было по двойному клику, а сейчас не могу понять как (вызов кнопкой на панеле не предлага) ?
Кто знает ответы, прошу поделиться информацией.
Заранее, спасибо!
« Последнее редактирование: 03-06-2006, 00:47 от Mongoose » Записан

© Смотрите, что и кому пишете!
Обсуждение Opera и Opera Mini в русской jabber-конференции => opera@conference.jabber.ru
 
profiT
Administrator

Сообщений: 2 169


Чем проще, тем проще.


Просмотр профиля
08-08-2006, 13:02

Цитата: thunderkot
Интереса ради написал такой скриптик:
Код:
(function() {
document.addEventListener('DOMContentLoaded',function(){
 for (var i=0; i<document.links.length; i++) {
  if (document.links[i].target=="_blank") {
        document.links[i].target="_self";
  }
 }
},false);
}) ()
но пока писал, опера зависла пару раз от него %=))))

Так что наверное в Опере лучше не трогать свойство target у ссылок.
Скорее лучше надо не трогать коллекции links и images, так как они не являются стандартом.  Тот же add-alt-text.js по-моему, именно из-за этого глючит.

Не знаю, мне не удивительно что Опера грохается от такого кода. Посмотри на removeblank.js:

Код:
document.addEventListener('load',function(ev){
  var d = document.getElementsByTagName('a');
  for (var i = d.length-1; i > -1; i--) {
    if (d[i].getAttribute('target') == "_blank") {
      d[i].removeAttribute('target');
    }
  }
},false);

Не зря тут цикл идёт наоборот. Дело в том что как страничные скрипты, так и UserJS могут изменить (и изменяют)  макет, в том числе и создавая новые ссылки (или картинки, если про images). И что может произойти в цикле который крутится по расширяемому в процессе списку ссылок никто не знает. Правда и это не спасает от падения в 9-ке. Но в приципе можно попробовать сделать:
а) Вместо цикла for сделать цикл while (хотя навряд ли будет разница).
б) Наладить DOM-итератор с фильтром a[target='_blank'].
в) Пустить XPath-запрос, при этом результаты его можно попробовать "заморозить" (если я ничего не напутал, мельком проглядывая спецификацию...), чтобы изменения в макете его не затрагивали.

А теперь, после того как я вас слегка подмариновал, прочитав ажно целую лекцию... Барабаны: тр-р-р-р-р-р! Решение в студию!..

Код:
a[href][target='_blank'] {-o-link:attr(href) !important; -o-link-source:current !important;}

Хе-хе. Проверьте как оно работает. В моей рабочей 8-ке не работает, впрочем, мне всё равно этот скрипт (теперь уже стиль) не нужен.

Но всё таки надо допроверить, так как '-o-link' как ни крути, тоже нифига не стандарт, и никто ничего не гарантирует.

* remove blank.css (0.21 Кб - загружено 153 раз.)
« Последнее редактирование: 08-08-2006, 13:18 от profiT » Записан

ELV1S
OperaFan Team

Сообщений: 1 435



Просмотр профиля WWW
08-08-2006, 14:17

profiT
Спасибо! Отлично работает! Просто супер!
Теперь мне опять не надо думать как откроется ссылка.

Можешь дать ссылку(и), где можно почитать про эти -o-link, -o-link-source и прочие -o-?
« Последнее редактирование: 13-01-2007, 13:51 от ELV1S » Записан

Не пишите мне личные сообщения. Спрашивайте на форуме.
thunderkot
Ветеран

Версия Opera: Opera/9.64 (X11; Linux i686; U; ru) Presto/2.1.1
Сообщений: 1 080


Критик оперы


Просмотр профиля
08-08-2006, 16:34

profiT: т.е. как это links и images не по стандарту? Везде в стандартах они упоминаются, вот тут хотябы: http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html
Цитировать
images
A collection of all the IMG elements in a document. The behavior is limited to IMG elements for backwards compatibility.
links
A collection of all AREA elements and anchor (A) elements in a document with a value for the href attribute.
и тут: http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html
Цитировать
images
This property is of type HTMLCollection.
links
This property is of type HTMLCollection.

Или ты про какой стандарт говоришь?


Цитировать
И что может произойти в цикле который крутится по расширяемому в процессе списку ссылок никто не знает.
да по идее ничего страшного не должно происходить. Если конечно список ссылок не расширяется в бесконечном цикле :=)
И уж конечно браузер не должен падать или зависать от ЛЮБЫХ скриптов!
Но зато опера быстрее любого другого браузера выполняет яваскрипт. Так может падучесть, это цена за скорость? %=))
Записан

profiT
Administrator

Сообщений: 2 169


Чем проще, тем проще.


Просмотр профиля
08-08-2006, 21:31

profiT: т.е. как это links и images не по стандарту? Везде в стандартах они упоминаются, вот тут хотябы: http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html
Мда... Лажанулся я...

Цитировать
И что может произойти в цикле который крутится по расширяемому в процессе списку ссылок никто не знает.
да по идее ничего страшного не должно происходить. Если конечно список ссылок не расширяется в бесконечном цикле :=)
Э-э, нет... Что-то мне чудится что там сидит Морра... Могут возникать конфликты, взаимные блокировки. Впрочем я лучше опять оставлю за собой право на лажу.

И уж конечно браузер не должен падать или зависать от ЛЮБЫХ скриптов!
Конечно. Не должен. Но "все браузеры делают ЭТО" (с). Крэшеры есть всегда под любой браузер.
« Последнее редактирование: 08-08-2006, 21:33 от profiT » Записан

thunderkot
Ветеран

Версия Opera: Opera/9.64 (X11; Linux i686; U; ru) Presto/2.1.1
Сообщений: 1 080


Критик оперы


Просмотр профиля
09-08-2006, 06:52

Цитировать
Э-э, нет... Что-то мне чудится что там сидит Морра... Могут возникать конфликты, взаимные блокировки.
ладно, давай замнем этот момент, тем более что обсуждаемый глюк с этим точно не связан. А в каких-то конкретных случаях может быть и возможны конфликты (например, специально написать такой код %=)).

Цитировать
Крэшеры есть всегда под любой браузер.
да, но от них ведь надо избавляться. А то в опере многовато таких крешей накопилось, аж работать на некоторых сайтах невозможно (где яваскрипт очень активно используется). Например, регить сайт в каталогах с помощью системы 1ps.ru приходится фоксом, ибо опера там крешится через некоторое время работы :=((
« Последнее редактирование: 09-08-2006, 06:52 от thunderkot » Записан

Lex1
Разработчик

Версия Opera: 8.54 & more
Сообщений: 3 773


Просмотр профиля WWW
16-08-2006, 22:27

А есть UserJS заставляющий ссылки открываться в фоне? Вариант по мотивам соответствующего букмарклета понятен, но возможно есть лучший?
Код:
document.addEventListener( 'load',function () {var dl=document.links, i;function tn(e){e=e?e:window.event; open(this.href);focus(); return false;}; for (i=0;i<dl.length;++i) {if(dl[i].protocol=='http:')dl[i].onclick=tn;};},false)
Точнее так:
Код:
document.addEventListener( 'load',function () {var dl=document.links;function tn(e){e=e?e:window.event; open(this.href);focus(); return false;}; for (var i=0, dli; dli=dl[i];++i) {if(dli.protocol=='http:'&&!dli.hash&&dli.target!='_top'&&dli.target!='_self'&&dli.target!='_parent')dli.onclick=tn;};},false)
« Последнее редактирование: 17-08-2006, 20:40 от Lex1 » Записан

Sapienti sat
profiT
Administrator

Сообщений: 2 169


Чем проще, тем проще.


Просмотр профиля
17-08-2006, 21:29

Цитировать
И что может произойти в цикле который крутится по расширяемому в процессе списку ссылок никто не знает.
да по идее ничего страшного не должно происходить. Если конечно список ссылок не расширяется в бесконечном цикле :=)
Как раз начали что-то похожее обсуждать на офф. форуме.
« Последнее редактирование: 17-08-2006, 21:30 от profiT » Записан

thunderkot
Ветеран

Версия Opera: Opera/9.64 (X11; Linux i686; U; ru) Presto/2.1.1
Сообщений: 1 080


Критик оперы


Просмотр профиля
18-08-2006, 13:55

profiT: вообще-то там совсем про немножко другое :=)
Записан

grass
Новичок

Сообщений: 7


Просмотр профиля
02-09-2006, 12:14

Парочка вопросов:

1) Есть ли возможность добавить в конетекстное меню ссылки пункт, который бы открывал на фоне страничку, вставлял в нужную (она же единственная на страничке) форму и нажимал Submit?

2) Мне необходим скрипт заменяющий часть адреса у каждой ссылке на странице. Если быть точным то нужно заменить "/get/?id=" на  "/get/file/?id=" тормознутость скрипта не интересует, пусть хоть минуту делает.
Записан
Lex1
Разработчик

Версия Opera: 8.54 & more
Сообщений: 3 773


Просмотр профиля WWW
02-09-2006, 13:40

grass
Цитировать
тормознутость скрипта не интересует
Например так:
Код:
// ==UserScript==
// @include *
// @exclude http://mail.google.com/*
// ==/UserScript==

document.addEventListener('load',function(ev){
  var d = document.getElementsByTagName('a');
  for (var i = d.length-1; i > -1; i--) {
    var rep=d[i].href.replace(/\/get\/\?id=/g,'/get/file/?id='); if(rep!=d[i].href){d[i].href=rep};
  }
},false);
Записан

Sapienti sat
Dimanish
Профи

Сообщений: 354


Просмотр профиля
02-09-2006, 15:39

А можно написать скрипт, который нажимал бы автоматически кнопку входа на страницах?
Записан
Lex1
Разработчик

Версия Opera: 8.54 & more
Сообщений: 3 773


Просмотр профиля WWW
02-09-2006, 18:12

grass
1) А нельзя самостоятельно сформировать запрос? Попробуй сделать поисковик из этой формы.
Записан

Sapienti sat
grass
Новичок

Сообщений: 7


Просмотр профиля
02-09-2006, 19:53

grass
1) А нельзя самостоятельно сформировать запрос? Попробуй сделать поисковик из этой формы.

Начальная форма у этого скрипта выглядит вот так:
Код:
if (!$location){
$content="<html>
<head>
<title>PHP-анонимайзер(".getenv('SERVER_NAME').")</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">
</head>
<body>
<br><br>
<form action=\"\" method=\"POST\">
<div align=\"center\">Ссылка: <input type=\"Text\" name=\"session_new\" value=\"http://\">
<input type=\"Submit\" value=\"Вперед >>\">
</font>
</form>
</div>
</body>
</html>";
if ($charset_default){
header("Content-Type: text/html; charset=$charset_default");
$content=decode_charset($content,"windows-1251",$charset_default);
}
echo $content;
exit;

А я ни в JS ни в PHP ничего не понимаю Sad Буду очеееень признателен за помощь.

PS: За замену в УРЛ большущее спасибо - теперь экономлю свои нервы при закачки с нашего местного файлообменника. Smiley
« Последнее редактирование: 02-09-2006, 19:55 от grass » Записан
Lex1
Разработчик

Версия Opera: 8.54 & more
Сообщений: 3 773


Просмотр профиля WWW
02-09-2006, 21:13

grass
Всё же попробуй сделать поисковик из этой формы (правой кнопкой->Создать поиск, указываешь Keyword "zxcv"). А потом используй его в пункте меню:
Код:
Item, "Название" = New Page & Go to page, "zxcv %l" & Switch to previous page
« Последнее редактирование: 02-09-2006, 22:08 от Lex1 » Записан

Sapienti sat
grass
Новичок

Сообщений: 7


Просмотр профиля
03-09-2006, 11:34

grass
Всё же попробуй сделать поисковик из этой формы (правой кнопкой->Создать поиск, указываешь Keyword \"zxcv\"). А потом используй его в пункте меню:

Большое спасибо, все работает Smiley

Еще вопрос: Можно ли сделать чтоб скрипт проверял charset на страничке и если он UTF-8 то заставлял Оперу показывать ее именно в UTF-8. Я знаю что Опера сама неплохо все определяет, но вместе с вышеописанным скриптом это определение глючит Sad

Записан
Страниц: 1 ... 11 12 [13] 14 15 ... 37
  Печать  
 
Перейти в:  

OperaFan © 2006-2010, OperaFan Team
Powered by SMF | SMF © 2006, Simple Machines LLC | Sitemap