A.S.

Расширяем функционал Nitro

9 posts in this topic

Posted (edited)

Сегодня поговорим о том, как расширить функционал браузера Nitro.
Nirto пустой, у него есть только домашняя страница и закладки. Именно поэтому он и быстрый. Но людям нужен функционал. Но Nitro с расширениями уже не будет таким быстрым, хотя я надеюсь, что Nitro станет основой для MX5, и у нас будет два родственных браузера: быстрый Nitro и функциональный MX5. Почему бы и нет?
Когда-то у нас не было расширений, не только для Maxthon, вообще. В те времена у нас были в лучшем случае закладки и мы использовали их для простеньких скриптов, которые запускались по клику. Сейчас у нас нет расширений для Nitro, у нас есть только закладки. Так что времена скриптов возвращаются.

Что нужно делать?
  1. Кликаем по звездочке в правом верхнем углу (Favorites)
  2. Выбираем Add to Favorites
  3. Копируем скрипт в строку с адресом
  4. Жмем Add, чтобы сохранить
Всё. Теперь скрипт будет запускаться по клику всякий раз, когда он нужен. Кстати, в Maxthon это тоже работает: функционал практически такой же, что и у расширений, но запускается по клику, а значит не потребляет ресурсы в фоне.
Теперь поговорим о том, какие скрипты были бы полезны для пользователей.

Скачивалки:
  • SaveFrom. SaveFrom - это скачивалка видео, аудио и фото, но работает он только в Firefox, Chrome, Opera и прочих Хромиумах. Для Maxthon нормального SaveFrom нет, но можно использовать скрипт с расширением ViolentMonkey или просто установить урезанную версию. Из нее мы и возьмем скрипт для Nitro (см. скрипншоты, но они идут не в том порядке)
    javascript:q=(document.location.href);void(open('http://en.savefrom.net/#url='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));
  • KeepVid. Еще одна скачивалка видео. Как и в случае с SaveFrom, полная версия KeepVid отказывается работь в Maxthon в виде отдельного расширения, но сам скрипт можно загнать в ViolentMonkey. Как и в случае с SaveFrom, под Maxthon есть урезанная версия - KeepVid Light, которая никак не может пройти проверку в Extensions Center. Букмарклет должен работать и в Nitro:
    javascript:(function(){window.open('http://keepvid.com/?url='+encodeURIComponent(location.href)+'')})();
  • Save2Go. В теории скачивает flash-контент с любого сайта, на деле довольно трудно найти сайт, с которым скрипт нормально работает. Так что использовать его в обычных браузерах довольно глупо, но в Nitro он может пригодиться.
    javascript:(function(){if(typeof(Save2GO)!='undefined'){Save2GO()}else{var%20s=document.createElement('script');s.type='text/javascript';document.getElementsByTagName('head')[0].appendChild(s);s.src%20=%20'http://save2go.ru/sys/inc/bookmarklet.js'}})();
  • Flickr Downloader. Скрипт, позволяющий скачивать фото с Flickr в максимальном разрешении. За основу возьмем скрипт Евгения Орехова. Но должен предупредить: я не проверял, работает ли он в Nitro, я сделал расширение для Maxthon. Но если оно вам надо, почему бы не проверить самому?
    /*jslint browser: true */ (function () { "use strict"; var originalSizeLink = document.querySelector(".Original > a"), canonicalUrl = document.querySelector("#canonicalurl").href, biggestSizeUrl = canonicalUrl + "/sizes/k/", secondBiggestSizeUrl = canonicalUrl + "/sizes/h/", xhr, imageUrl; function downloadImage() { var a = document.createElement("a"); a.href = window.URL.createObjectURL(xhr.response); a.download = document.title.split(" |")[0] + ".jpg"; document.body.appendChild(a); a.click(); } function openImage() { var aElement = document.querySelector(".all-sizes").cloneNode(), liElement = document.createElement("li"); aElement.href = imageUrl; aElement.target = "_blank"; liElement.appendChild(aElement); document.querySelector(".sizes").appendChild(liElement); aElement.click(); } function getImage() { var parsedDom; if (xhr.status === 200) { parsedDom = new window.DOMParser() .parseFromString(xhr.responseText, "text/html"); imageUrl = parsedDom.querySelector("#allsizes-photo > img").src; xhr = new XMLHttpRequest(); xhr.responseType = "blob"; xhr.onload = downloadImage; xhr.onerror = openImage; xhr.open("GET", "https://cors-anywhere.herokuapp.com/" + imageUrl); xhr.send(); } } function loadBiggestSizePage() { if (xhr.status === 200) { if (xhr.responseURL !== biggestSizeUrl) { biggestSizeUrl = secondBiggestSizeUrl; } xhr = new XMLHttpRequest(); xhr.onload = getImage; xhr.open("GET", biggestSizeUrl); xhr.send(); } } if (originalSizeLink) { originalSizeLink.click(); } else { xhr = new XMLHttpRequest(); xhr.onload = loadBiggestSizePage; xhr.open("HEAD", biggestSizeUrl); xhr.send(); } }());

 

Переводчики:

  • Bing Translator. Получется что-то похожее на Microsoft Translator или Bing Translator для Maxthon. Но нам нужно взять скрипт для конкретно нашего языка. Идем сюда, выбираем родной для нас язык и копируем ссылку ниже.
    Для русского языка скрип выглядит так:
    javascript:(function(){var s = document.createElement('script'); s.type = 'text/javascript'; s.src = 'http://labs.microsofttranslator.com/bookmarklet/default.aspx?f=js&to=ru'; document.body.insertBefore(s, document.body.firstChild);})()
    Для английского языка скрипт будет выглядить вот так:
    javascript:(function(){var s = document.createElement('script'); s.type = 'text/javascript'; s.src = 'http://labs.microsofttranslator.com/bookmarklet/default.aspx?f=js&to=en'; document.body.insertBefore(s, document.body.firstChild);})()
  • PROMT:
    javascript:q=(document.location.href);void(open('http://www.translate.ru/siteTranslation/autolink/?direction=ar&template=General&sourceURL='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));
  • Переводчик Google:
    javascript:q=(document.location.href);void(open('https://translate.google.com/translate?sl=auto&tl=ru&js=y&prev=_t&hl=ru&ie=UTF-8&u='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));
  • Яндекс.Переводчик:
    javascript:q=(document.location.href);void(open('https://z5h64q92x9.net/sandbox?dir=auto&ui=ru&lang=en-ru&url='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));
    Переводчик Google, PROMT и Яндекс.Перевод взяты из расширения MultiTranslator для Maxthon.

Читалки:
  • Readability Mod. Режим чтения + ночной режим:
    javascript:(function(){x=document.createElement('SCRIPT');x.type='text/javascript';x.src='http://brettterpstra.com/share/readability.js?x='+(Math.random());document.getElementsByTagName('head')[0].appendChild(x);y=document.createElement('LINK');y.rel='stylesheet';y.href='http://brettterpstra.com/share/readability.css?x='+(Math.random());y.type='text/css';y.media='screen';document.getElementsByTagName('head')[0].appendChild(y);})();
  • Squirt Reader. Инсрумент для скорочтения. Что-то вроде суфлера или бегущей строки. Вы смотрите в одну точку, не нужно бегать глазами по тексту, а сам текст меняется с заданой скоростью. Объяснить сложно, лучше один раз попробовать.
    javascript:(function(){sq=window.sq=window.sq||{};if(sq.script){sq.again();}else{sq.bookmarkletVersion='0.3.0';sq.iframeQueryParams={host:'//squirt.io',userId:'601ff41c-50fc-4a65-b582-3719751b8b6a',};sq.script=document.createElement('script');sq.script.src=sq.iframeQueryParams.host+'/bookmarklet/frame.outer.js';document.body.appendChild(sq.script);}})();

 

Расшаривалки:

  • TLDRify. Расшаривалка выделенного текста или конкретной части страницы. На случай важных переговоров, когда нужно ткнуть собеседника носом:
    javascript:(function(d){d.body.appendChild(d.createElement('script')).src='//tldrify.com/static/js/bookmarklet.min.js?_'+new%20Date().getTime();})(document);
  • AddThis:
    javascript:void((function(svc)%20{var%20d=document,w=window,p=0,b=function(){if(!p){p=1;if(_atc.xol)_adr.onReady();if(w.addthis_sendto)addthis_sendto(svc||'bkmore',{product:'bmt-'+_atc.ver})}else{p=0;if(_atw)_atw.clb()}};if(!w._atc){var%20ol=w.addthis_onload||[],o=d.createElement('script');w.addthis_product%20=%20'bmt-250';o.src='//s7.addthis.com/js/250/addthis_widget.js#domready=1&username=bookmarklet';ol.push(b);w.addthis_onload=ol;d.getElementsByTagName('body')[0].appendChild(o)}else%20b()})())
  • Shareaholic:
    javascript:(function(){var%20service='all';if(window.Shareaholic%20&&%20window.Shareaholic.prototype%20&&%20window.Shareaholic.prototype.Bookmarklet){Shareaholic.init_bookmarklet(service)}else{var%20shr=document.createElement('script');shr.type='text/javascript';shr.async='true';shr.src='//dtym7iokkjlif.cloudfront.net/assets/pub/shareaholic.js';shr.onload=shr.onreadystatechange=function(){var%20rs=this.readyState;if(rs%20&&%20rs!='complete'%20&&%20rs!='loaded'){return;}try{Shareaholic.init_bookmarklet(service)}catch(e){%20}};document.getElementsByTagName('head')[0].appendChild(shr);}})();void(0);

 

Синхронизация:

  • Pocket+. Добавляет открытую вкладку в копилку на сайте GetPocket.com. Можно использовать для синхронизации списка сайтов между разными браузерами и устройствами:
    javascript:(function(){var e=function(t,n,r,i,s){var o=[2144535,5909549,4482627,6361312,6256000,3231139,2187251,9437389,1988610,3463569];var i=i||0,u=0,n=n||[],r=r||0,s=s||0;var a={'a':97,'b':98,'c':99,'d':100,'e':101,'f':102,'g':103,'h':104,'i':105,'j':106,'k':107,'l':108,'m':109,'n':110,'o':111,'p':112,'q':113,'r':114,'s':115,'t':116,'u':117,'v':118,'w':119,'x':120,'y':121,'z':122,'A':65,'B':66,'C':67,'D':68,'E':69,'F':70,'G':71,'H':72,'I':73,'J':74,'K':75,'L':76,'M':77,'N':78,'O':79,'P':80,'Q':81,'R':82,'S':83,'T':84,'U':85,'V':86,'W':87,'X':88,'Y':89,'Z':90,'0':48,'1':49,'2':50,'3':51,'4':52,'5':53,'6':54,'7':55,'8':56,'9':57,'\/':47,':':58,'?':63,'=':61,'-':45,'_':95,'&':38,':36,'!':33,'.':46};if(!s||s==0){t=o[0]+t}for(var f=0;f<t.length;f++){var l=function(e,t){return a[e[t]]?a[e[t]]:e.charCodeAt(t)}(t,f);if(!l*1)l=3;var c=l*(o[i]+l*o[u%o.length]);n[r]=(n[r]?n[r]+c:c)+s+u;var p=c%(50*1);if(n[p]){var d=n[r];n[r]=n[p];n[p]=d}u+=c;r=r==50?0:r+1;i=i==o.length-1?0:i+1}if(s==326){var v='';for(var f=0;f<n.length;f++){v+=String.fromCharCode(n[f]%(25*1)+97)}o=function(){};return v+'51bcb34758'}else{return e(u+'',n,r,i,s+1)}};var t=document,n=t.location.href,r=t.title;var i=e(n);var s=t.createElement('script');s.type='text/javascript';s.src='https://getpocket.com/b/r4.js?h='+i+'&u='+encodeURIComponent(n)+'&t='+encodeURIComponent(r);e=i=function(){};var o=t.getElementsByTagName('head')[0]||t.documentElement;o.appendChild(s)})()

 

P.S. Если знаете другие скрипты, которые запускаются по клику и работают в Nitro, пишите. Кому-то они пригодятся!
В подобном обсуждении на старом форуме было несколько предложений, которые сюда не попали, но, возможно, вам они покажутся полезными.
 

Edited by Semenov-Sherin
1 person likes this

Share this post


Link to post
Share on other sites

Перестал работать скрипт Переводчик Bing Translator. Просто ничего не происходит.

Это только у меня?

Share this post


Link to post
Share on other sites

И еще вопрос: можно ли использовать без изменений скрипт AddThis для создания расширения?
Ну, т.е.          

 

"actions": [{

                            "type": "script", 
                     "entryPoints": ["toolbar"],
                              "js": ["script.js"]
                    }]
 
и засунуть скрипт AddThis в script.js

Share this post


Link to post
Share on other sites

Можно ли использовать без изменений скрипт AddThis для создания расширения? Ну, т.е.         

"actions": [{   "type": "script", 

                     "entryPoints": ["toolbar"],
                     "js": ["script.js"] }]

 

Можно, но он не станет работать, выдаст ошибку в консоле. Работать их тулбара ему что-то мешает, надо редактировать.

1 person likes this

Share this post


Link to post
Share on other sites

Posted (edited)

Добрый день!

Подскажите пожалуйста, браузер понравился, особенно когда постоянно глючат последние версии макстона.

Но как сюда добавить синхронизацию с облаком от макстона - и всё - я перехожу на нитро, но закладок очень нехватает синхронизации, можно как то прикрутить?

Edited by retj7144737

Share this post


Link to post
Share on other sites

Как сюда добавить синхронизацию с облаком от макстона - и всё - я перехожу на нитро, но закладок очень нехватает синхронизации, можно как то прикрутить?

Можно использовать сервисы вроде Pocket и Symbaloo. Придется создать две закладки: одна со скриптом, чтобы сохранять сайты, другая - ссылка на сайт, чтобы смотреть. Для MX есть расширения.

1 person likes this

Share this post


Link to post
Share on other sites
On 15.08.2015, 11:11:07, retj7144737 said:

Добрый день!

Подскажите пожалуйста, браузер понравился, особенно когда постоянно глючат последние версии макстона.

Но как сюда добавить синхронизацию с облаком от макстона - и всё - я перехожу на нитро, но закладок очень нехватает синхронизации, можно как то прикрутить?

Закладки онлайн, просто сделать стартовую страницу  http://www.iknop.ru/

Share this post


Link to post
Share on other sites
1 hour ago, Alex L said:

Закладки онлайн, просто сделать стартовую страницу  http://www.iknop.ru/

Я могу сделать расширение для Maxthon. Но мне понадобится пара ссылок. И кто-то должен затестить. 

Share this post


Link to post
Share on other sites
On 18.07.2015 at 8:43 PM, vova_n said:

Перестал работать скрипт Переводчик Bing Translator. Просто ничего не происходит. Это только у меня?

Microsoft убили официальный букмарклет. То ли случайно, то ли намеренно. Вот этот вроде работает:

javascript:q=(document.location.href);void(open('https://www.microsofttranslator.com/bv.aspx?from=&to=auto&a='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));

 

Share this post


Link to post
Share on other sites