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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 19 20 21 22

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

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: здесь и здесь
 

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

Всего записей: 17289 | Зарегистр. 07-06-2006 | Отправлено: 12:00 15-02-2014 | Исправлено: Maz, 14:14 02-11-2021
TheBarmaley



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

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

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

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

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

Всего записей: 17289 | Зарегистр. 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 что-то съел?)

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

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



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

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

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

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



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

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

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



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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Докладываю обстановку после очередной проверки:
1) С переводами строк по-прежнему --- символы "n", но это пока не главное
2) Ссылки в теге
Код:
<a href="https://somesite/somefile.rar" target="_blank"><font color="blue"><b>Скачать</b></font></a>
все еще не берутся(
Или, я что-то не так понимаю. Если что, прошу сильно не пинать
 
Спасибо тебе большое

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

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
есть пара встречных вопросов:
1. у тебя, часом, не линух, не?
2. в каком браузере/версии пробуем?
3. что-то есть в консоли при запуске букмарклета и/или после нажатия на "сохранить текст"?
 
по остальному:
Цитата:
1) С переводами строк по-прежнему --- символы "n", но это пока не главное
с этим как раз проще, можно попробовать замену не '\n', a на '\r' или на '\n\r' - тогда будет и перевод строки и возврат каретки..
или, возможно, как-то некорректно кодировка утф-8 отрабатывается, браузер ведь отдаёт в утф-8 всю эту колбасу..

Цитата:
2) Ссылки в теге
Код:<a href="https://somesite/somefile.rar" target="_blank"><font color="blue"><b>Скачать</b></font></a>
все еще не берутся
вот это и непонятно - почему.. у меня даже твой пост с "псевдо-ссылкой" получился вот так:
Цитата:
...
2) Ссылки в теге
Код: <a href="https://somesite/somefile.rar все еще не берутся(
Или, я что-то не так понимаю. Если что, прошу сильно не пинать
...
т.е. регулярка отрезания "таргет=... отхреначила по первый настоящий тег во вложенной таблице тега "код".. =))
начало, понятно, фильтром не срезало - это же не тег, а голый текст..
 
по-хорошему, парсить пост в текст надо уже после того, как тег каждой ссылки в нём будет целиком заменён на его атрибут href..
но вот как это слепить в пределах букмарклета - я пока не соображу..
поэтому с хтмлкой всё и проще, там весь код исходный остаётся..

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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Цитата:
1. у тебя, часом, не линух, не?
Linux, но букмарклеты для Google Chrome 67.0.3396.62 (Official Build) (64-bit) не удалось загрузить --- браузер крашился (вылетал). Пришлось туже самую версию браузера в VMware ставить под Windows 7 64-bit. Там и тестирую
Цитата:
2. в каком браузере/версии пробуем?
Google Chrome 67.0.3396.79 (Official Build) (64-bit)

Цитата:
3. что-то есть в консоли при запуске букмарклета и/или после нажатия на "сохранить текст"?
Консоль пока не смотрел, позже включу

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 19:16 08-06-2018 | Исправлено: TeXpert, 22:12 08-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
возвращаясь к вопросу о "пока не соображу" - сообразил, забирай "свежак" - запостил там же, до кучи..  
вопчем, если строго под твои хотелки - кнопку тыкать придётся с тремя клавишами - альт+ктрл+шифт+клик..))
тогда в итоге не будет форумных "обгрызенных" ссылок и текстовки полных ссылок тоже не будет..
ну и имя файла на выходе минималистично - штамп времени..
я, попутно, отказался от текущего, заменив на глобальные мс - ведь каждый день бывает одно и то же время..)
 
по линуксу - не уверен, но, возможно, проблемка с кривизной замены \n с этим и связана..
тут ничего не подскажу, вариантов замены всего 3 - \n, \r и \f (в комбинациях), хотя непонятно, почему слэш отваливается..
 
по браузеру - фиг знает, я на ХР сижу, выше 49-й версии не ходун, на ней всё норм работает..)
я бы не парился с костылями в виде вм, а взял бы просто стабильную рабочую порташку более ранней версии..
впрочем, если уж браузер букмарклеты не может съест, а не ну ли его нафиг..))
 
про консоль - это так, на всякий случай, я, в общем-то, уверен в отсутствии ошибок, но всяко бывает..

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Вот теперь самым мне подходящим вариантом оказался Shift + щелчок --- ссылки наконец появились (Alt + щелчок почему-то не пашет). Постараюсь все лишнее вырезать сам. А вот со строками та же песня, нет переноса
 
Спасибо
 
P. S. Вот, соорудил такой вариант:
Код:
javascript:function s(){var d=document.createElement("a"),h=(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/[ ]*<br>[ ]*/g,'\n')+'',"text/html"),l=h.getElementsByTagName('a'),h,i=0;for(i;i<l.length;i++)l[i].href.match('://')&&(l[i].innerHTML=decodeURI(l[i].href)+'');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:>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}
Можно ли выкинуть покрашенные фрагменты? А пока этот код работает --- дает текст и ссылки, но переносов все еще нет

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 22:39 08-06-2018 | Исправлено: TeXpert, 23:32 08-06-2018
TheBarmaley



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

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

Цитата:
Можно ли выкинуть покрашенные фрагменты?
можно, это же прибавка "пустого текста" => её можно и не делать, в твоём варианте это лишние операции..

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

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

Всего записей: 17289 | Зарегистр. 07-06-2006 | Отправлено: 05:19 09-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Цитата:
...возможно - в лине как-то по другому кнопы обрабатываются
Ну, Linux тут вообще ни при чем --- я ведь под Windows на виртуальной машине тестирую
Цитата:
...а если вместо \n ставить \\n (с двумя слэшами) - получается как у тебя - переносы заменяются, только уже на текстовку \n..
А вот и оказалось не так). То что \n заменяется на n наталкивало на мысль, что с экранированием что-то не так. Вот и решил попробовать --- сработал как раз вариант с
Код:
\\n
! То же самое и с
Код:
\\x0A

 
В общем, огромное тебе спасибо!
Думаю, ты тоже кое-какую пользу вынес
 
P. S. Напоследок --- как теперь этот код превратить в UserScript? Оформил в следующий шаблон Tampermonkey
Код:
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://forum.ru-board.com
// @grant        none
// ==/UserScript==
 
(function(){
//  'use strict';
  function s(){
    var d=document.createElement("a"),
    h=(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/[ ]*<br>[ ]*/g,'\\n'),"text/html"),
    l=h.getElementsByTagName('a'),
    h,
    i=0;
    for(i;i<l.length;i++)l[i].href.match('://')&&(l[i].innerHTML=decodeURI(l[i].href));
    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:>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;
    document.getElementById(i).onclick=s
  }
})();
однако получаю ругательство на строку
Код:
h,
типа, 'h' is already defined

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 12:28 09-06-2018 | Исправлено: TeXpert, 13:52 09-06-2018
TheBarmaley



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Цитата:
Ну, Linux тут вообще ни при чем ... А вот и оказалось не так).
значит, всё же есть разница - у меня в нативной винде двойное экранирование аннулирует символ переноса..))
оно, кстати, так и правильно - ведь экранировка спецсимволов превращает их в обычные..
 
по скрипту и ругательству - ога, правильно ругается, лишнее определение переменной, надо убирать и из букмарклета..
сопссно, это остатки от экспериментов, вариантов было много, лишнее недочистилось..)
пасиба за акцент, ща пойду поправлю..  
 
итого, если твой код в скрипт (лишнее зачеркнул):
Код:
// ==UserScript==  
...
// @match        *://forum.ru-board.com/topic.cgi*
...  
// ==/UserScript==  

(function(){  
//  'use strict';
 
function s(){  
    var d=document.createElement("a"),  
    h=(new DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/[ ]*<br>[ ]*/g,'\\n'),"text/html"),  
    l=h.getElementsByTagName('a'),
    h,
    i=0;  
    for(i;i<l.length;i++)l[i].href.match('://')&&(l[i].innerHTML=decodeURI(l[i].href));  
    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:>Сохранить текст</a> | "+a[i].parentNode.firstChild.innerHTML;  
    document.getElementById(i).onclick=s  
  }
})();
надо бы добавить шаблон для хттпса и только для топиков (в матч) и убрать "обёртку" - скрипт и без неё отработает..
ну и да - со скриптом тоже самое - \\n на винде приводит к "слипанию" текста т.к. вместо переноса ставится \n..)

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

Всего записей: 17289 | Зарегистр. 07-06-2006 | Отправлено: 15:16 09-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
В Firefox ESR 52.5.1 (64-bit), под Scientific Linux 6.9 пункт "Сохранить текст" (Bookmarklet) появляется тогда, когда надо делать обертку
Код:
javascript:(function(){function%20s(){var%20d=document.createElement("a"),h=(new%20DOMParser).parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/[%20]*<br>[%20]*/g,'\n'),"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));h=new%20Blob([(new%20DOMParser).parseFromString(h.documentElement.outerHTML,"text/html").documentElement.textContent.replace(/[%20]+/g,'%20').replace(/\s\[\?\]/g,'')],{type:"text/plain"});d.setAttribute("href",URL.createObjectURL(h));d.setAttribute("download",Date.now());d.click();d.remove()}for(var%20i=0,a=document.querySelectorAll(".post");i<a.length;i++){a[i].parentNode.firstChild.innerHTML="<a%20id="+i+"%20class='tpc'%20href=javascript:>%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C%20%D1%82%D0%B5%D0%BA%D1%81%D1%82</a>%20|%20"+a[i].parentNode.firstChild.innerHTML;document.getElementById(i).onclick=s}})();
иначе ошибка. Но при нажатии ничего не происходит.
С UserScript та же песня (Firefox), лишние возни из-за того, что в Google Chrome 67.0.3396.62 UserScript работает неустойчиво
 
Спасибо
 
P. S. В обе функции вставил alert'ы типа "bookmarklet loaded" и "bookmarklet worked" --- работают; вставил всплывающую подсказку title='Текст\nСледующая строка', тоже пашет. Вот только ничего не сохраняет.
Ладно, поедем дальше

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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 10:12 10-06-2018 | Исправлено: TeXpert, 13:23 10-06-2018
TheBarmaley



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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Цитата:
...не кукует совсем - не тыкается кнопка
Тыкается! Писал же выше
Цитата:
В обе функции вставил alert'ы типа "bookmarklet loaded" и "bookmarklet worked" --- работают; вставил всплывающую подсказку title='Текст\nСледующая строка', тоже пашет. Вот только ничего не сохраняет
Как видишь, вызывается и что-то делает. Уточню, это через Bookmarklet
Цитата:
...про хромого-67 - и снова скажу - ты б не парился с ним, а взял бы стабильную постарше..)
Да я бы с радостью --- но у меня выбора почти нет под Linux. Гады с офсайта прячут старые версии, сидел бы на них

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

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
Цитата:
Тыкается! Писал же выше
Цитата:В обе функции вставил alert'ы типа "bookmarklet loaded" и "bookmarklet worked" --- работают; вставил всплывающую подсказку title='Текст\nСледующая строка', тоже пашет. Вот только ничего не сохраняет  
Как видишь, вызывается и что-то делает. Уточню, это через Bookmarklet
ключевое выделил..)
кнопка-то цепляется, да, но так и не понял - какого лешего диалог сохранения не выходит..

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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Цитата:
ну так пересядь на аналоги, у которых в нормальном доступе все версии..
Дык уже начал... После того, как сам же написал про офсайт с гадами) Получается, сам себе пинок дал
Цитата:
к примеру - srware iron, практически те же в профиль, но в оф.репозитории ничего не удаляется, качай любую..
Так-то оно так, но приходится опять же выбирать версию с подходящими либами, тоже морока
 
А вообще, неужели web-разработчикам не интересно, почему не работает и где собака порылась?

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

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



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

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

Всего записей: 17289 | Зарегистр. 07-06-2006 | Отправлено: 13:44 11-06-2018
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TheBarmaley
Код:
 
// ==UserScript==
// @name         TestUserscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        *://forum.ru-board.com/topic.cgi*
// @grant        none
// ==/UserScript==
 
(function(){
//  'use strict';
  var my_saver_script = document.createElement('script');
  my_saver_script.setAttribute('src','https://cdn.rawgit.com/eligrey/FileSaver.js/5ed507ef8aa53d8ecfea96d96bc7214cd2476fd2/FileSaver.min.js');
  document.head.appendChild(my_saver_script);

  function s(){
    var d=document.createElement("a"),h,k,l,i;
    k=new DOMParser();
    h=k.parseFromString(document.querySelectorAll(".post")[this.id].innerHTML.split(/<table[^>]+"sing">/)[0].replace(/[ ]*<br>[ ]*/g,'\n'),"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));
    };
    h=new Blob([(new DOMParser).parseFromString(h.documentElement.outerHTML,"text/html").documentElement.textContent.replace(/[ ]+/g,' ').replace(/\s\[\?\]/g,'')],{type:"text/plain"});
    saveAs(h, Date.now()+".txt");
    d.remove();
  };
  for(var i=0,b=document.querySelectorAll(".post");i<b.length;i++){
    b[i].parentNode.firstChild.innerHTML="<a id="+i+" class='tpc' href=javascript: title='TestUserscript\nТекст'>Сохранить текст</a> | "+b[i].parentNode.firstChild.innerHTML;
    document.getElementById(i).onclick=s;
  }
})();
Все в твоем коде правильно, проверил отладчиком, вот только сохранение не работало. Я включил известную библиотеку FileSaver, и теперь файл сохраняется. Оцени код с точки зрения знатока.
 
И, вопрос: как сделать так, чтобы автоматически нажималась кнопка сохранения (через настройки браузера не катит, тогда и все другое будет сохраняться без спроса, а мне этого не надо). Вот здесь автор FileSaver пишет, как реализовать отказ
Цитата:
...you can implement an abort button that aborts the FileSaver

Код:
var filesaver = new FileSaver(blob, "video.webm");
abort_button.addEventListener("click", function() {
  filesaver.abort();
}, false);
 
а мне бы надо просто автоматом нажать "Сохранить"
 
 
Спасибо


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

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 11:32 13-06-2018 | Исправлено: TeXpert, 11:35 13-06-2018
Открыть новую тему     Написать ответ в эту тему

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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru