UserJS или обустроим форум сами?! - страница 2

 
Rosh:
Такие скрипты несут потенциальную опасность для тех, кто их использует. Будьте уверены в авторе скрипта или проверяйте его содержимое самостоятельно перед установкой, если понимаете JS.
В этих скриптах есть опасность?
 
alexx_v:
В этих скриптах есть опасность?

Смотрели только этот

вот, слету, что можно было бы замутить:

  • превью первого сообщения в теме, при задержке мыши у заголовка, первого непрочитанного при задержке над соответствующей ссылкой
  • кликом по значку слева от названия темы, отметить ее прочитанной
  • добавить постоянную ссылку на сообщение [скачать скрипт]

Он безопасен, но будет работать не во всякой Опере

 
Замечательно. В Файерфоксе у меня работает нормально.
 
Кто-то постоянно поднимает тему?
 

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

 

DDFedor, я только за..

// @name mql4.fixedlinks

здесь и далее будет указано рекомендуемое имя файла, под которым нужно сохранить код в файл... 

при этом для браузера firefox нужно добавить .user.js, а для opera - просто .js - это важно, т.к. иначе работать не будет 

 
majestic:

... я только за...


тогда будем считать это правилом (хорошего тона) и для других авторов.
 
majestic:

для "затравки" выкладываю скрипт, добавляющий постоянную ссылку на сообщение по аналогии с форумом mql5 -- вот так )

например, для этого сообщения будет такая вот ссылочка - #

Немного разукрасил. Сделал подчёркивание, толщину и цвет. К # добавил текущий номер сообщения и номер сообщения на странице.

(function()
{
  document.addEventListener('DOMContentLoaded', function(e)
  {
    var d = document.querySelectorAll('td>div>a[name]');
    if (!d.length) return;
    var l = document.querySelectorAll('a[href *= "subscribe"]');
    l = l.length ? l[0].href.replace('?a[subscribe]', '') : '';
    for (var i = 0; i < d.length; i++)
    {
      var a = document.createElement('a');
      a.setAttribute('href', l + '#' + d[i].name);
      a.setAttribute('style', 'font-size: 12px; font-weight: bold; text-decoration: underline; color: #4127173');
      a.setAttribute('onclick', 'return false');
      a.innerHTML = '#' + d[i].name + '/' + (i + 1); // Метка для ссылки.
      with(d[i].parentNode.querySelectorAll('span')[0])
      {
        appendChild(document.createTextNode(' '));
        appendChild(a);
      }
    }
  }
 , false)
})()
//alert('End');
// ==UserScript==
// @version 10111601
// @name mql4.fixedlinks
// @author DVZ aka Majestic
// @copyright https://www.mql5.com/en/users/majestic
// @namespace https://forum.mql4.com/ru/36815
// @include https://forum.mql4.com/*
// ==/UserScript==

Надо сделать копирование в буфер обмена ссылки при нажатии на "#".
 

раз уж тема всплыла, вот еще одна полезняшка:

mql4.unread - исправляет адрес вида https://forum.mql4.com/ru/36815/unread#unread на постоянный - https://forum.mql4.com/ru/36815/page2#395703

для чего это нужно?

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

(function()
{
    document.addEventListener('DOMContentLoaded', function(e)
    {
        var l = document.querySelectorAll('a[href*="subscribe"]');
        l = l.length ? l[0].href.replace('?a[subscribe]', '') : '';
        var u = document.querySelectorAll('a[name="unread"]');
        var d = (u.length?u[0].nextSibling:document).querySelectorAll('td>div>a[name]');
        if(!d.length) return;
        location.replace(l + '#' + d[0].name);
    }
    , false)
})()
// ==UserScript==
// @version 12081501
// @name mql4.unread
// @author DVZ aka Majestic
// @copyright https://www.mql5.com/en/users/majestic
// @namespace https://forum.mql4.com/ru/36815
// @include https://forum.mql4.com/*/unread*
// ==/UserScript==
 

Только хотел добавить что подобную кастомизацию можно замутить через Greasmonkey для Firefox, как гляжу в статье об этом уже расписано (оказываеться что UserJS это просто подобная функциональность для Оперы)

Респект за идею ) осталось только коллекцию скриптов собрать