Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Ultra TC Editors
Goto page Previous  1, 2, 3 ... , 43, 44, 45  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
yozhik



Joined: 04 May 2014
Posts: 331
Location: Электросталь

Post (Separately) Posted: Sun May 03, 2026 17:52    Post subject: Reply with quote

VBScript работает в CHM. Но JS всё же лучше. JS не то чтобы вообще не работает в CHM — разворачивающееся оглавление же в справочниках работает, а оно на JS — но работает с ограничениями. Orion9, быть может попробовать дать деревянному солдату команду «чтобы работало в IE» или сразу «в CHM»? Вы же опытный Урфин Джюс, а я не Урфин Джюс вообще Smile

Если получится сделать работоспособное в CHM переключение на JS, то можно было бы его вставить в каждую ячейку Description в виде маленькой кнопочки [<>]. Тогда и кол-во столбцов можно было бы учесть и для верхних таблиц использовать одну ф-цию, а для нижних — другую. Расставить кнопки по ячейкам — минутное дело при помощи регулярок. А хоткей не использовать совсем. Я не против хоткея, но чем проще код, тем больше шансов, что он заведётся в CHM.

Для лучшего понимания — вот это в CHM сейчас работает исправно:
Code:
<script type="text/javascript">function toggleBlock(e){var l=document.getElementById(e+"-data"),s=document.getElementById(e+"-toggler");"none"==l.style.display?(l.style.display="block",s.className="shown"):(l.style.display="none",s.className="hidden")}</script>

<span id="keys-contents-toggler" class="hidden" onclick="javascript:toggleBlock('keys-contents');"></span><a href="#keyslist">Список ключей</a>

_________________
Amo ergo sum
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1085

Post (Separately) Posted: Sun May 03, 2026 20:48    Post subject: Reply with quote

Avada wrote:
Локальный файл изменяться не может, поскольку предусмотрено в т.ч. его скачивание "как есть".

Да. Понятно.

yozhik wrote:
а я не Урфин Джюс вообще

Так ведь надо им становиться! Smile Тем более, что ничего сложного в общении с ИИ нет. Он, конечно, иногда болванится, но в целом радует вменяемым кодом и полезными советами.

А вообще, вы гений! Я, конечно, и раньше игрался с болваном, но так чтобы рубануть его прямо в лоб не догадался бы, а зря!

 why does the following code not work in chm or ie?


 Ответ

 Hidden text

В общем, я проверил оба варианта. Оба работают в плагине HTMLView! Первый такой
Code:
<html>
<head><meta http-equiv="X-UA-Compatible" content="IE=edge">
<button onclick="toggleColumn()">Показать/Скрыть колонку (Alt+H)</button>
<script type="text/javascript">
     function toggleColumn() {
        var body = document.body;
        // Заменяем classList.toggle на проверку строки className
        if (body.className.indexOf('hide-cols') !== -1) {
            body.className = body.className.replace('hide-cols', '').trim();
        } else {
            body.className += ' hide-cols';
        }
        alert("Привет! Я уведомление.");
    }
   
    // Используем старый способ отлова клавиш
    document.onkeydown = function(e) {
        e = e || window.event;
        // 72 — это код клавиши H
        if (e.altKey && e.keyCode === 72) {
            if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
            toggleColumn();
        }
    };
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style type="text/css">
        /*.hide-cols td:nth-child(1),*/
          .hide-cols td:nth-child(2),
          .hide-cols td:nth-child(3),
          .hide-cols td:nth-child(4),
          .hide-cols td:nth-child(5),         
          .hide-cols td:nth-child(6) {
            display: none;
          }

Второй без X-UA-Compatible работает только на поовину, но тогда придется отказаться от td:nth-child и откатиться на скрытие полей по классу, как в VBScript, с вытекающей проблемой скрытия заголовков.
Code:
<html>
<head><meta http-equiv="X-UA-Compatible" content="IE=edge">
<button onclick="toggleColumn()">Показать/Скрыть колонку (Alt+H)</button>
<script type="text/javascript">
     function toggleColumn() {
        var body = document.body;
        // Заменяем classList.toggle на проверку строки className
        if (body.className.indexOf('hide-cols') !== -1) {
            body.className = body.className.replace('hide-cols', '').trim();
        } else {
            body.className += ' hide-cols';
        }
        alert("Привет! Я уведомление.");
    }
   
    // Используем старый способ отлова клавиш
    document.onkeydown = function(e) {
        e = e || window.event;
        // 72 — это код клавиши H
        if (e.altKey && e.keyCode === 72) {
            if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
            toggleColumn();
        }
    };
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style type="text/css">
          td {
            border-style: solid;
            border-width: 1px;
            vertical-align: top;
            padding: 8px;
            }
          .td_header {font-weight: bold; background-color: #A3E4A3; color: #000;border-style: solid;border-width: 1px 1px 1px 0; border-color: #000;}
          .td_key {background-color: #FFF7E8; color: #000; border-style: solid;border-width: 0 1px 1px 1px;padding: 8px;}
          .td_file {background-color: #fff; border-width: 0 1px 1px 0;padding: 8px;}
          .td_section {background-color: #fff; border-width: 0 1px 1px 0;padding: 8px;}
          .td_version {background-color: #fff; border-width: 0 1px 1px 0;padding: 8px;}
          .td_default {background-color: #fff; border-width: 0 1px 1px 0;padding: 8px;}
          .td_advanced {background-color: #fff; border-width: 0 1px 1px 0;padding: 8px;}
          .td_description {background-color: #FFF7E8; border-width: 0 1px 1px 0;padding: 8px;}
          .keyscount {font-size: 0.8em;}
          a:link {text-decoration:none;}
          a:visited {text-decoration:none;}
          a:hover {text-decoration:underline;}
          a:active {text-decoration:underline;}
          .hidden, .shown {
            cursor: pointer;
            margin-right: 0.5em;
          }           
          .hide-cols .td_header { display: none; }         
          .hide-cols .td_file { display: none; }
          .hide-cols .td_section { display: none; }         
          .hide-cols .td_version { display: none; }     
          .hide-cols .td_default { display: none; }
          .hide-cols .td_advanced { display: none; }   

Ну, и оба варианта работают без Alt + H в плагине. Но что-то мне подсказывает, что это дело в самом плагине, там надо искать.

Можете потдвердить работоспособность кода, как будет возможность?
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 331
Location: Электросталь

Post (Separately) Posted: Sun May 03, 2026 23:43    Post subject: Reply with quote

Ну, вот так работает и в CHM, и в HTMLView, и на Win 7 (Pro SP1 x64 2018.08 )
https://dropmefiles.com/yuV4G
(обменник перепаковывает архив с паролем 123 — прошу прощения, это не я).

Только остался один существенный недостаток: поскольку колонки сворачиваются во всех таблицах, строки улетают, и чем ближе к концу файла, тем разница существенней. Вариант решения мне представляется таким. Каждой ячейке Descritpion присваиваем якорь или ID — это я умею (надеюсь), а при вызове ф-ции сворачивания передаём этот якорь или ID параметром, например:
Code:
<td class="td_description"><a name="1234"></a><button onclick="toggleColumn(1234)">&lt;&gt;</button>

Нужно в ф-ции toggleColumn дописать переход к якорю. А это я не умею Smile

meta http-equiv="X-UA-Compatible" content="IE=edge" у меня в CHM с самого начала был — без этой директивы CSS плохо работает. Но я всё равно выбрал вариант без :nth-child — для нас сейчас чем топорней, тем надёжней, пмсм.

Orion9 wrote:
вы гений

Нет, это не я. Гений — это Игорь Северянин.
_________________
Amo ergo sum
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1085

Post (Separately) Posted: Mon May 04, 2026 00:20    Post subject: Reply with quote

yozhik
чЁтко получилось Smile Мне нравится. Очень нравится!

yozhik wrote:
Только остался один существенный недостаток: поскольку колонки сворачиваются во всех таблицах, строки улетают, и чем ближе к концу файла, тем разница существенней.

Да, я писал об этой проблеме. Реально обламывает.
yozhik wrote:
Но я всё равно выбрал вариант без :nth-child — для нас сейчас чем топорней, тем надёжней, пмсм.

А может быть все-таки попробовать с :nth-child? Там меньше улетает позиция, почти и не видно, и с якорями не придется заморачиваться. Ну а если ничего не получится, будем дальше думать, только уже на свежую голову )
yozhik wrote:
Нет, это не я. Гений — это Игорь Северянин.

Ладно, уговорили. Вы — нормальный, как и я, и все мы Laughing
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10509
Location: Россия, Саратов

Post (Separately) Posted: Mon May 04, 2026 06:58    Post subject: Reply with quote

yozhik
В HTMLView и MarkdownView на Windows 7 SP1 у меня переключение не работает. В браузере — да.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 331
Location: Электросталь

Post (Separately) Posted: Mon May 04, 2026 10:42    Post subject: Reply with quote

Avada
Первым шагом давайте, пожалуйста, сравним наши настройки плагинов. Поскольку MarkdownView сконструирован на основе HTMLView, вся базовая часть настроек у них общая. Вот мой MarkdownView.ini:
https://disk.yandex.ru/d/V6O6jhr5S3SXMA
_________________
Amo ergo sum
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1085

Post (Separately) Posted: Mon May 04, 2026 12:25    Post subject: Reply with quote

yozhik
Там по сути только два ключа могут играть роль, как мне кажется
Code:
; Set to 1 to allow scripts execution
AllowScripting=1
;
; Set to 1 to allow Java applets to execute
AllowJava=1

yozhik wrote:
Нужно в ф-ции toggleColumn дописать переход к якорю. А это я не умею

Не игнорируйте болвана — он все умеет.

 how do i go to an anchor in JS?

Но у меня через тег <a> с атрибутом name почему-то не сработало. Зато сработало через id. Сначала скрипт
 Hidden text

Два первых ключа
 Hidden text

Твою-ж материю! Кажись, работает! Ну, болван... опять сделал мой день Very Happy

 P.s.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10509
Location: Россия, Саратов

Post (Separately) Posted: Mon May 04, 2026 13:23    Post subject: Reply with quote

yozhik
Orion9
Спасибо, всё прояснилось. В INI обоих плагинов должна быть строка AllowScripting=1, а у меня был 0. О чём, собственно, выше и сказано. Изменение AllowJava у меня на эту функцию не влияет.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
nemo9



Joined: 14 Apr 2026
Posts: 3

Post (Separately) Posted: Mon May 04, 2026 15:18    Post subject: Reply with quote

Orion9 wrote:
Хотелось бы еще шрифт другой

Я решил эту проблему удалив/закомментировав все теги типа:
Code:
font-family: 'Segoe UI Semibold';

При таком подходе браузер использует шрифт установленный по умолчанию (а он, как правило, уже настроен под личные предпочтения).
Не знаю, как это будет выглядеть в плагине просмотровщика, т.к. принципиально использую для HTML - браузер. Полагаю, в настройках плагина должно быть указание шрифта по умолчанию. Ну, или вручную менять содержимое всех тегов font-family
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1085

Post (Separately) Posted: Mon May 04, 2026 18:43    Post subject: Reply with quote

Avada
Хорошо, что так. Я был склонен думать, что проблема где-то глубже в системе, и что вам придется намного сложнее ее выявлять. Хотя, как показывает практика, сейчас можно в лоб у ИИ-шки спросить "Почему у меня не работает JavaScript на компе", от до чего дожили то )

yozhik
В скрипте есть косяк, я его не сразу заметил. Не в том месте фигурная скобка оказалась после вставки (мой косяк). Из-за этого переход работал глючно. Исправленная версия
Code:
<script type="text/javascript">function toggleColumn(id) {var body = document.body;if (body.className.indexOf('hide-cols') !== -1) {body.className = body.className.replace('hide-cols', '').trim();} else {body.className += ' hide-cols';}
var el = document.getElementById(id);
      if (el) {
        window.location.hash = id;
      } else {
        alert("Секция не найдена! " + id);
      }
}</script>

Так все работает. Но вот что я не пойму, почему name не хочет работать. Ставлю <a id="id1234"> работает. Ставлю <a name="id1234"> не работает. Чудеса и немцы.

nemo9
Понятно. Но я сейчас ориентируюсь на CHM от yozhik. Думаю, мы завершим это дело. Ведь поклёв уже пошёл, осталось только немного потянуть и вытащить мечту наружу Laughing
Back to top
View user's profile Send private message
BeTeP



Joined: 31 Mar 2005
Posts: 135
Location: Санкт-Петербург

Post (Separately) Posted: Mon May 04, 2026 19:02    Post subject: Reply with quote

Orion9 wrote:
Но вот что я не пойму, почему name не хочет работать. Ставлю <a id="id1234"> работает. Ставлю <a name="id1234"> не работает. Чудеса и немцы.

Orion9, если у "болвана" спросить, то получаем что-то типа этого:
Quote:
Для создания якорных ссылок в современном HTML (HTML5) следует использовать <a id="anchor">. Атрибут id обеспечивает уникальный идентификатор элемента на странице, который используется для CSS, JS и якорных ссылок. Устаревший name заменен на id в XHTML и HTML5 для ссылок, тогда как name используется в основном для передачи данных форм на сервер.
Основные отличия:
• <a id="target"> (Рекомендуется): Это глобальный атрибут, уникальный для всей страницы. Подходит для создания якорей (URL с #).
• <a name="target"> (Устарело): Ранее использовался для якорей, теперь предпочтителен только в тегах <form>, <a> (в контексте name), <input> и т.д. для отправки данных.

_________________
«The Truth Is Out There»
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1085

Post (Separately) Posted: Mon May 04, 2026 19:33    Post subject: Reply with quote

BeTeP
Просто он ранее советовал
Code:
Важные нюансы для CHM:ID vs Name: В совсем древних версиях IE якоря лучше работают через тег <a> с атрибутом name: <a name="myAnchor"></a>

а мы вроде как с yozhik негласно договорились придерживаться максимальной обратной совместимости, вплоть до IE4! (шутка)

Хорошо, что у него Win7 есть под рукой. Если с id будет работать, то норм, какая разница. Хотя наверняка найдутся те, кто и для ХРюши будет требовать совместимость Laughing
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 331
Location: Электросталь

Post (Separately) Posted: Mon May 04, 2026 19:42    Post subject: Reply with quote

Orion9, я сделал с name
Code:
window.location = window.location.toString().replace(/#[0-9]+/g, '') + "#" + loc;

Всё вместе так:
Code:
<script type="text/javascript">function toggleColumn(loc) {var body = document.body;if (body.className.indexOf('hide-cols') !== -1) {body.className = body.className.replace('hide-cols', '').trim();} else {body.className += ' hide-cols';} window.location = window.location.toString().replace(/#[0-9]+/g, '') + "#" + loc; }</script>

Работает. Сделал ещё подгрузку внешнего CSS, в котором можно настраивать шрифты — заготовка была, но надо было переписать, чтобы имя CSS наследовалось из имени CHM. Осталось только собрать и причесать. Отвлекли нежданчики )) Как только доделаю, сразу здесь напишу.

Добавлено: XP тоже есть на виртуалке. Можно будет и там проверить.
_________________
Amo ergo sum
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 1085

Post (Separately) Posted: Mon May 04, 2026 21:27    Post subject: Reply with quote

yozhik wrote:
Всё вместе так:

Я ничего не понял, но главное чтобы оно работало Laughing

yozhik wrote:
Как только доделаю, сразу здесь напишу.

Окей. Ждемс )

Добавлено спустя 2 часа 19 минут:

Avada
А последний релиз ТС, который вот-вот состоится, много затронет изменений в справочнике по ключам? Как долго ждать обновлений, если навскидку?

Я не знаю, будет ли CaptainFlint делать обновления на сайте, но вообще не помешало бы добавить якоря ко всем ключам в справочнике для более удобной работы с ним.

Например, сейчас такой якорь приводит в раздел интерфейса программы и вкладок папок
https://flint-inc.ru/tcinfo/Russian.cedf#keys-ui-folder-tabs
Но можно сделать, как yozhik, и присвоить ID каждому ключу. Тогда если у ключа "DarkBackground", допустим, ID=567, то ссылка
https://flint-inc.ru/tcinfo/Russian.cedf#567
будет приводить точно к этому ключу. Может быть удобно для отсылки к справочнику или каких-то других целей. ID, конечно, может быть любым, не обязательно цифровым.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 331
Location: Электросталь

Post (Separately) Posted: Tue May 05, 2026 00:18    Post subject: Reply with quote

Готов 2й тестовый вариант:
https://dropmefiles.com/wp4Nz
(пароль на распаковку: 123)

На Windows 7 работает. На XP SP3 x86 — нет, точнее работает только сворачивание, а при разворачивании ругается на неподдерживаемый метод объекта, т.е. для XP надо ещё упрощать код.

Чего доделал:
-- Кнопки теперь выровнены по правому краю, со стилем, есть всплываха с подсказкой при наведении курсора.
-- При нажатии содержимое окна чуть дёргается — это мы так переходим к якорю и ещё проматываем 100 пикселей вверх, чтобы лучше смотрелось.
-- В CSS файле настраиваем шрифты для показа в CHM. Помимо гарнитуры можно и размер указать и чего угодно, главное в конце правила добавлять команду !important . Имя CSS должно быть таким же, как и у CHM. Сейчас у 1156t2_.css в конце имени подчёркивание — убрать его и CSS заработает. Если кто CHM переименует, переименовывайте и CSS тем же именем и будет работать. Только кириллицу в имени пока не тестировал.

Чего заметил:
В современных браузерах (пробовал в хромоклоне Vivaldi и в Edge) городить перемещение к якорю не нужно — при скрытии/показе колонок текущая строка остаётся на месте, не улетает.
_________________
Amo ergo sum
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... , 43, 44, 45  Next
Page 44 of 45

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group