Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Bookmarklets / Favelets / Букмарклеты / Закладурки

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Открыть новую тему     Написать ответ в эту тему

TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bookmarklets / Favelets / Букмарклеты / Закладурки
 
Работают в любом* браузере, поддерживающем JavaScript, и, соответственно, в любой* ОС.
* хотя, конечно, всегда возможны исключения, связанные с "заточенностью" кода под что-то конкретное.. =)

В этой теме предлагается собирать и обсуждать эти маленькие "полезняшки" для браузеров.
Особо приветствуется конструктивная критика предлагаемых закладурок и варианты их доработки.
 
Убедительная просьба: публикуя код закладурки, пожалуйста, указывайте ссылку на источник!  


Микро-FAQ:  
Что это такое и зачем оно надо? + там же ссылки на некоторые ресурсы по теме
Как ставить и как применять закладурки?
 
Документация:
Букмарклеты и правила их написания + читаем/помним про ограничения! (пост)
Структурированная информация по языку JavaScript
MSDN: Справочник по языку JavaScript
JavaScript language advanced Tips & Tricks
JavaScript FAQ + там же есть и про букмарклеты
Вопросы и ответы по букмарклетам на StackOverflow.com (En)
 
Сделай сам:
Bookmarklet Combiner - он-лайн конструктор + публикация ваших "творений"
JavaScript Compressor - он-лайн "упаковщик" для сохранения JS в одну строку + кодировка в Base62 (пост)
Script to bookmarklet converter - ещё один он-лайн "упаковщик", попроще (пост)
HTML Compressor - он-лайн "упаковщик" HTML/CSS/JavaScript/PHP (пост)  
Convert bookmarklet to Chrome extension (пост)
 
Ресурсы по теме:
En: bookmarklets.comsquarefree.comphilburns.comoperawiki.infomarklets.comabout.com
Ru: webmascon.comnitro.rularge.rulexi.ucoz.rumichurin.net03www.subookmarklets01
Ru-Board: здесь и здесь
 

// текущий бэкап шапки..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 12:00 15-02-2014 | Исправлено: TheBarmaley, 16:20 22-02-2019
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PTITZA
Цитата:
Ну не "левый", а самый, що ни есть, родной, ру-борда-плюсовский
да левый он, левый.. всё, что нештатное = "левое"..  
можно ить любой сопссный стиль "родным" объявить, но только у 99% юзеров его нету..)

Цитата:
Такой вопрос, а где эти "полезняшки" сохраняются? Шоб при обновлении не потерять?
в закладках, вестимо.. кроме бэкапа файла Bookmarks перед обновой можно дополнительно закладкb в хтмл экспортнуть..
ну или просто в текстовый файлик "коллекцию" собирать - текущий обсуждаемый букмарклет в помощь..)
 


VVL99 (бэкап удалённого поста, чисто шоб нить обсуждения не терялась..)
вот так и не пойму - почему бы вместо
Цитата:
type:"octet/stream"
не использовать* "text/plain" - раз уж на выходе именно оно, а не бинарник?
* либо просто "text", тоже вполне нормально "проглатывается"..
 
я к тому, шо если уж октет, то тогда ещё и аппликатион/ надо, шоб по стандарту..)
ну и второе - с октетом сохранёнка из панели загрузок не открывается в самом бравзере, в отличие от..

Цитата:
2. Добавил название темы
..а ещё можно её же добавлять к названию файла - шоб не копаться потом в куче файликов с циферками в именах..)

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 19:55 04-06-2018 | Исправлено: TheBarmaley, 17:19 05-06-2018
inile

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99, TheBarmaley
Букмарклеты для сохранения постов только для хромов? В ff не работают.

Всего записей: 1812 | Зарегистр. 29-06-2011 | Отправлено: 20:26 04-06-2018
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Если есть желание продолжайте, там задача всё равно изменилась, может на что-то полезное набредёте.
 
Добавлено:
inile
Есть же юзерскрипт, запускайте, уже упоминал медведь.
 
Добавлено:
inile - пост
Цитата:
 В ff не работают.

А что это реально полезная весч?  
Как вы хоть этим пользуетесь, зачем это вообще нужно?

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 20:32 04-06-2018 | Исправлено: VVL99, 20:42 04-06-2018
inile

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А что это реально полезная весч?  
Как вы хоть этим пользуетесь, зачем это вообще нужно?

Мне не нужна. Тестировал как работает.  
Если букмарклет не кроссбраузерный, стоит указать для какого он браузера.

Всего записей: 1812 | Зарегистр. 29-06-2011 | Отправлено: 20:47 04-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
inile
Цитата:
Букмарклеты для сохранения постов только для хромов? В ff не работают.
угу, есть такое, не пашет.. хз, чего ему не хватает, в лисе даже сам элемент (кнопка) криво вставляется..
 


VVL99
Цитата:
Если есть желание продолжайте
ок, повторю вопрос:
Цитата:
почему бы вместо type:"octet/stream" не использовать* "text/plain" - раз уж на выходе именно оно, а не бинарник?

 
про "изменённую задачу" - угу, я видел, только там не задача поменялась, а хотелка конкретизировалась..)

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 20:51 04-06-2018
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley - пост
Цитата:
ок, повторю вопрос:

В смысле редактируйте, создавайте новые версии, я всё, не вижу смысла в данном коде.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 20:55 04-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99
Цитата:
В смысле редактируйте, создавайте новые версии, я всё, не вижу смысла в данном коде
ясно.. значит, ответ по существу замылен.. ладно, снято, забудь..

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 20:59 04-06-2018
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
По существу, я не пишу код по учебнику и науке, просто взял готовый кусок и выложил как пример, там уже столько вариантов, что пора уже всё переписать заново.

----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 21:31 04-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99
Цитата:
По существу, я не пишу код по учебнику и науке
..но о стандартах, тем не менее, желательно помнить - если интересует рабочесть "готовых кусков" в итоге..  
бравзер, каэшна, многие косяки выправить может, но не все.. поэтому и "сэмплы" стОит хоть причёсывать "по месту"..)

Цитата:
там уже столько вариантов, что пора уже всё переписать заново
сопссно, главное не вывалиться за пределы допустимого размера, а базовый функционал будет тот же самый..
хотя если совсем "по уму" - исходную задачку лучше скриптом решать, букмарклет шибко ограничен, зараза..)

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 21:56 04-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Цитата:
...про "изменённую задачу" - угу, я видел, только там не задача поменялась, а хотелка конкретизировалась..)
Приятно, когда человек адекватно и точно понимает суть вопроса. Между прочим, Ваш первый код в итоге пока выигрывает конкурс --- шут с ними, свистелками и прочей мишурой... Вот только как выкинуть оттуда сразу лишние фрагменты
Код:
http://forum.ru-board.com/topic.cgi?forum=93&bm=1&topic=3926&start=3020#18<hr><p><b>Текст &nbsp;<br> <i>Еще текст &nbsp;<br>Опять текст</i></b> <br> <i>Дополнительный текст</i> <br> &nbsp;<br> &nbsp;<img src="http://somesite/somefile.jpg" border="0"> &nbsp;<br> &nbsp;<br> Еще текст &nbsp;<br> &nbsp;<br> <a href="https://somesite/somefile.rar" target="_blank"><font color="blue"><b>Скачать</b></font></a> <br>
Конечно, я могу поработать grep'ом напоследок и все поправить, но все же хочется изначально минимум работы делать)

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3506 | Зарегистр. 08-02-2003 | Отправлено: 23:15 04-06-2018 | Исправлено: TeXpert, 23:19 04-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Цитата:
Приятно, когда ...
..как завещал товарищ Прутков - зри, мол..    

Цитата:
первый код в итоге пока выигрывает конкурс
..тем более, что наш коллега зачем-то "снял с пробега" все свои варианты..  

Цитата:
только как выкинуть оттуда сразу лишние фрагменты
ну ок, текст так текст, но тогда уж в "причёсанном" виде, чтоб закрыть вопрос с нечитабельностью..)
 
итак, почти всё под текущую хотелку:
без заголовка + сохранение в голый текст + удаление неполных* форумных ссылок + выдёргивание ссылки с её текстом:
Код:
javascript:function s(){var c=document.createElement("a"),h=new Blob([(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/(&nbsp\x3B)|(<a\shref="([^:"]+")?)|(["\s]*target="[^>)]+>)/g,' ').replace(/<br>[ ]*/g,'\n'),"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'').replace(/([ ]*\n)|(\n[ ]*)/g,'\n')],{type:"text/plain"});c.setAttribute("href",URL.createObjectURL(h));c.setAttribute("download",new Date().toTimeString().substr(0,8));c.click();c.remove()}for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript:>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}
* полные не стал отламывать, чтобы не усложнять регулярку, да и мало ли на что ссылка попадётся..)
 
чесгря, попробовал пошаманить с полным удалением текста ссылок, но простую регулярку, срабатывающую везде, я не подобрал..
в частности, если внутри тега <a> вложены шрифтовые изменения (жирный/мелкий и пр.) - режется криво..
ну а переусложнять букмарклет - не-не, не айс.. вопчем, лбом побился и плюнул..)
 
ладно.. пробуй, вроде должно всё норм быть..
 


ап:
..как показало следствие - в регулярку вкралась очепятка, лишняя правая скобка..)
на рабочесть кода не влияла, но на всякий случай пофиксил, вот "правильный" код:
Код:
javascript:function s(){var c=document.createElement("a"),h=new Blob([(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/(&nbsp;)|(<a\shref="([^:"]+")?)|(["\s]*target="[^>]+>)/g,' ').replace(/<br>[ ]*/g,'\n'),"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'').replace(/([ ]*\n)|(\n[ ]*)/g,'\n')],{type:"text/plain"});c.setAttribute("href",URL.createObjectURL(h));c.setAttribute("download",new Date().toTimeString().substr(0,8));c.click();c.remove()}for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript:>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}

 


ап2:
..по результатам экспериментов - более продвинутая сохранялка в текст, с дополнительными "фичами":    
 
   
 
- основное - сменил метод "выгрызания" ссылок, теперь содержимое парсим дважды..)
- дополнительная фича - декодер ссылок для улучшения их читабельности (без всяких %D0%D1..);
- фичи по умолчанию (просто щелчок) - кроме форматированного текста сохраняются также:
  - все ссылки (включая неполные форумные) + их [текстовое содержимое] - в скобках;
  - заголовок/урл темы добавляется в начале текста;
  - имя выходного файла = отформтированный заголовок топика + штемпель текущего времени (мс);
- опционально отключаемо:
  - альт+щелчок = неполные форумные ссылки не обрабатываются, только их текст (как есть);
  - ктрл+щелчок = ссылки вставляются без текста, только урл;
  - шифт+щелчок = заголовок топика и его урл в текст не добавляются, имя файла - только штемпель времени..
короче, вот код, пробуем:
Код:
javascript:function s(){var d=document.createElement("a"),a=event.altKey,c=event.ctrlKey,s=event.shiftKey,h=(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/[ ]*<br>[ ]*/g,'\n')+(a?'':"<base href='http://forum.ru-board.com/'>"),"text/html"),l=h.getElementsByTagName('a'),i=0;for(i;i<l.length;i++)l[i].href.match('://')&&(l[i].innerHTML=decodeURI(l[i].href)+(c?'':' ['+l[i].innerHTML+']'));h=new Blob([(s?'':document.title+'\n'+location.href+'\n*****\n\n')+(new DOMParser).parseFromString(h.documentElement.outerHTML,"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'')],{type:"text/plain"});d.setAttribute("href",URL.createObjectURL(h));d.setAttribute("download",(s?'':document.title.split(' :: ')[0].replace(/ /g,'_')+'_')+Date.now());d.click();d.remove()}for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript: title='Alt+клик = без неполных ссылок\nCtrl+клик = без текста ссылок\nShift+клик = без заголовка/имени'>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}
предупредение: размер букмарклета 1213 байт > 1024!
если будут проблемы при запуске (хотя и не должно) - срезаем "титле=..." у кнопки и лишние фильтры/фичи..
например, без фичи шифта и украшательств имени файла и заголовка/урл темы в тексте - как-то так:
Код:
javascript:function s(){var d=document.createElement("a"),a=event.altKey,c=event.ctrlKey,h=(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/[ ]*<br>[ ]*/g,'\n')+(a?'':"<base href='http://forum.ru-board.com/'>"),"text/html"),l=h.getElementsByTagName('a'),i=0;for(i;i<l.length;i++)l[i].href.match('://')&&(l[i].innerHTML=decodeURI(l[i].href)+(c?'':' ['+l[i].innerHTML+']'));h=new Blob([(new DOMParser).parseFromString(h.documentElement.outerHTML,"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'')],{type:"text/plain"});d.setAttribute("href",URL.createObjectURL(h));d.setAttribute("download",Date.now());d.click();d.remove()}for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript: title='Варианты вывода: Alt/Ctrl + щелчок..'>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}
в этом случае размер = 1021 байт, можно и дальше резать.. вопчем, правим шаблон под себя и пользуемся..)

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 17:08 05-06-2018 | Исправлено: TheBarmaley, 15:21 09-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley, большое человеческое спасибо! Пару дней сюда не заглядывал, сегодня только увидел

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3506 | Зарегистр. 08-02-2003 | Отправлено: 11:03 07-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Цитата:
сегодня только увидел
ну тогда уж, до кучи, держи ещё и "комбинированный" вариант - просто щелчок = в текст + ссылки, шифт+щелчок = в хтмл:
Код:
javascript:function s(){var c=document.createElement("a"),k=event.shiftKey,t=document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0],h=new Blob([(k?"<base href='http://forum.ru-board.com'>"+document.location.href.split("#")[0]+"#"+(+this.id+1)+"<hr><p>"+t:(new DOMParser).parseFromString(t.replace(/(&nbsp\x3B)|(<a\shref="([^:"]+")?)|(["\s]*target="[^>)]+>)/g,' ').replace(/<br>[ ]*/g,'\n'),"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'').replace(/([ ]*\n)|(\n[ ]*)/g,'\n'))],{type:"text/"+(k?"html":"plain")});c.setAttribute("href",URL.createObjectURL(h));c.setAttribute("download",new Date().toTimeString().substr(0,8));c.click();c.remove()}for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript: title='Щелчок = только текст + ссылки\nShift+щелчок = сохранить в HTML'>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}
при сохранении в хтмл всё же оставил "заголовок" в виде ссылки на копируемый пост - чисто для удобства..
если заголовок в хтмл не надо - удали выделенное рыжим..
 
да, забыл сказать - в этой (и в предыдущей) "версии" кроме всего прочего попутно вырезается ещё и подпись..
 
вопчем, пасиб за ТЗ, нормальная разминка для мозгов - размер "комбо" вышел строго 1к..))
     
 


ап:
по результатам последующего обсуждения подправлен непринципиальный косячок в регулярке, итоговый код:
Код:
javascript:function s(){var c=document.createElement("a"),k=event.shiftKey,t=document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0],h=new Blob([(k?"<base href='http://forum.ru-board.com'>"+document.location.href.split("#")[0]+"#"+(+this.id+1)+"<hr><p>"+t:(new DOMParser).parseFromString(t.replace(/(&nbsp;)|(<a\shref="([^:"]+")?)|(["\s]*target="[^>]+>)/g,' ').replace(/<br>[ ]*/g,'\n'),"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'').replace(/([ ]*\n)|(\n[ ]*)/g,'\n'))],{type:"text/"+(k?"html":"plain")});c.setAttribute("href",URL.createObjectURL(h));c.setAttribute("download",new Date().toTimeString().substr(0,8));c.click();c.remove()}for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript: title='Щелчок = только текст + ссылки\nShift+щелчок = сохранить в HTML'>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}


----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 17:32 07-06-2018 | Исправлено: TheBarmaley, 12:14 08-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Цитата:
...вопчем, пасиб за ТЗ, нормальная разминка для мозгов - размер "комбо" вышел строго 1к..))
Тебе тоже огромное спасибо! В математике (да и в жизни тоже, думаю) за интересными решениями стоят не менее интересные постановки. Желаю дальнейших успехов! Приятно иметь дело с истинными профессионалами

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3506 | Зарегистр. 08-02-2003 | Отправлено: 19:45 07-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
При проверке простого варианта
Цитата:
javascript:function s(){var c=document.createElement("a"),h=new Blob([(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/(&nbsp\x3B)|(<a\shref="([^:"]+")?)|(["\s]*target="[^>)]+>)/g,' ').replace(/<br>[ ]*/g,'\n'),"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'').replace(/([ ]*\n)|(\n[ ]*)/g,'\n')],{type:"text/plain"});c.setAttribute("href",URL.createObjectURL(h));c.setAttribute("download",new Date().toTimeString().substr(0,8));c.click();c.remove()}for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript:>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}
обнаружилось следующее:
1) вместо перевода строк получается символ "n"
2)
Цитата:
...выдёргивание ссылки с её текстом
текст да, но ссылки нет(
В коде нарушен баланс простых скобок (я выделил красным). Может, собака порылась где-то тут?
 
Спасибо большое

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3506 | Зарегистр. 08-02-2003 | Отправлено: 00:25 08-06-2018 | Исправлено: TeXpert, 00:26 08-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
ок, продолжаем копать..)

Цитата:
При проверке простого варианта
...
обнаружилось следующее:  
1) вместо перевода строк получается символ "n"  
хз, должно быть всё правильно, я ведь перед отправкой в "паблик" на сто раз проверил - всё пашет..
 
можно сделать так - взять код букмарки и сунуть в нотепад++, к примеру, чтоб видеть отформатированный код..
там всего два куска с регуляркой для обработки переносов строк (взял из твоей цитаты, во избежание недоразумений):
преобразование тега <br> в перенос строки (идёт сразу после выгрызания ссылок из хтмл):
   
и обрезка лишних пробелов в начале строки после её переноса (это уже в результируюшем тексте):
   
смотри сам регулярки, вроде как нет косяков..

Цитата:
2)
Цитата:...выдёргивание ссылки с её текстом
текст да, но ссылки нет(
в текстовом виде НЕ будет только укороченных ссылок - типа форумных, начинающихся с топик.цги?форум... и т.д..
любые полные ссылки (в т.ч. и форумные!) - будут всегда, смотри первую регулярку на первом скрине выше..
т.е. укороченные ссылки и НЕ должны распознаваться, если НЕ указан протокол (для простоты проверка по двоеточию в урл)..

Цитата:
В коде нарушен баланс простых скобок (я выделил красным). Может, собака порылась где-то тут?
не соглашусь, тот же нотепад++ кажет корректную пару..
иначе бы оно ваще не работало бы - я проверял выполнение кода, глядя на консольные ошибки, можешь сам проверить - нету их..
 
в итоге крайняя версия (комбо, текст/хтмл) даёт у меня такие результаты: сохранение в текст и оно же в хтмл (с шифтом)..
в качестве примера сохранял шапку этого топика, на "текстовом" скрине* выделил отсутствующую форумную ссылку:
точно такая же - внизу (строчка "//текущий бэкап..."), у полных ссылок (где указан протокол!) сохраняет и ссылку и её текст..
на "хтмл-ном" скрине та же форумная ссылка нормально преобразована (на скрине на ней стоит указатель)..
 
* на скриншоте ссылки подсвечены, т.к. у меня стоит скрипт преобразования текстовых ссылей в урл..
если его отключить, будет то же самое, только без подсветки..
 
вопчем, всё должно работать правильно, хотя есть нюанс - если в браузере стоят ещё какие-то расширки, меняющие код..)
поэтому для чистоты эксперимента надо бы тестить на пустом профиле (ну или хотя бы в режиме инкогнито)..
если всё же "не-а, не летит оно" - хотелось бы пример проблемного поста(-ов) с "кривым" сохранением..
 
на всякий случай - я проверял в хромоклонах, айрон-31 и 49, разницы в результате никакой (на выходе файлы одинаковые)..
результаты открывал в них же, в браузерах.. сопссно, без разницы, хоть в ТС по ф3, всё так же..)

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 05:50 08-06-2018 | Исправлено: TheBarmaley, 12:58 08-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Насчет регулярок --- спасибо за подробности, разберусь)
А вот насчет баланса...
Цитата:
...не соглашусь, тот же нотепад++ кажет корректную пару..
Я делал так (в gedit, это такой же продвинутый редактор): контекстная замена "(" -> "L", 29 occurences, ")" -> "R", 30 occurences
Теперь то же самое в Notepad++, с тем же результатом(
Проверочный материал взят прямо с твоего поста
Может, при вставке в пост движок ru-board.com что-то съел?)

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3506 | Зарегистр. 08-02-2003 | Отправлено: 08:18 08-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
ну, начальник, я хз, чего там съедается..  
я ведь в регулярке даже лишнюю замену точки с запятой сделал на \x3B, шоб не косячило..)
 
вот ещё раз специально взял и тупо выделил весь кусок кода в указанном посте и перетянул на панель закладок..
потом ткнул получившийся букмарк - всё норм пашет, ни ошибок в консоли, ни косяков в сохранёнке..
 
Добавлено:

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

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 10:55 08-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Цитата:
Если на клетке слона прочтёшь надпись «буйвол», не верь глазам своим
)
А то я и глазами посчитал на скриншоте --- не сходится баланс, хоть тресни
 
Спасибо большое, ща проверю

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3506 | Зарегистр. 08-02-2003 | Отправлено: 12:20 08-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Цитата:
не сходится баланс, хоть тресни  
он, так-то, и не обязан в нашем случае сходиться - если скобки внутри регулярок как условия стоят..)
я ж говорю, ошибки скрипта нету, а то, что "в принципе" может закосячить, на  работу не влияет, только на итоговый текст..
причём, этого текста будет БОЛЬШЕ, чем с исправлением - если эта скобка где-то влезет между "таргет=" и ограничителем тега..
но по сути -  в этом букмарклете вероятность нулевая - внутри юзер-поста (!) НЕ должно* быть скобок до конца тега..)
* хотя, если предположить, шо у юзера стоят некие дополнительные скрипты - тогда да, всё может быть..))

----------
..the one of.. ··· ..sam-&-pol..

Всего записей: 11919 | Зарегистр. 07-06-2006 | Отправлено: 12:50 08-06-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Компьютерный форум Ru.Board » Компьютеры » Программы » Bookmarklets / Favelets / Букмарклеты / Закладурки


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru