Orion9

|
Posted: Sat May 02, 2026 13:22 Post subject: |
|
|
| yozhik wrote: | | Разобраться можно было бы, наверное, но времени увы. |
Это да. Но никто и не гонит. Речь идет о перспективах. А в перспективах хотелось бы такое увидеть — растянутый текст все-такие удобнее читать.
Поигрался с утра еще с болваном. Раз уж с Java есть проблемы, пришла мысль спросить его за VBScript. Ответ последовал незамедлительно
В обшем, удалось сделать то же самое для плагина HTMLView. Возможно теперь и в CHM будет работать, но... У меня не получилось повесить горячую клавишу Alt+H, а без переключения по горячей клавише все остальное бесполезно (если только не сделать плавающую кнопку или что-то в этом роде). Может быть какие-то ограничения ТС мешают, или еще что-то. Разбираться с этим, если честно, не имея никаких знаний, очень сложно, поэтому и желания большого нет.
VBScript не понимает td:nth-child(), поэтому используется
| Code: | .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; } |
Остальной код с начала
 Hidden text | Code: | <html><button onclick="ToggleAllTables()">Показать/Скрыть колонку (Alt+H)</button>
<script language="VBScript">
Set document.onkeydown = GetRef("Document_OnKeyDown")
Sub ToggleAllTables()
'MsgBox "ToggleAllTables"
Dim body
Set body = Document.Body
' Проверяем наличие класса и переключаем его
If InStr(body.ClassName, "hide-cols") > 0 Then
body.ClassName = Replace(body.ClassName, "hide-cols", "")
Else
body.ClassName = body.ClassName & " hide-cols"
End If
End Sub
Sub Window_OnKeyDown()
MsgBox "ToggleAllTables"
' 72 — это код клавиши "H", 18 — это Alt
If window.event.altKey And window.event.keyCode = 72 Then
Call ToggleAllTables() ' Скрыть колонки
End If
End Sub
Sub Document_OnKeyDown()
MsgBox "ToggleAllTables"
Dim keyCode
keyCode = window.event.keyCode
' 72 — это код клавиши H
If window.event.altKey And keyCode = 72 Then
' Чтобы браузер не пытался открыть свое меню "Справка"
window.event.returnValue = False
' Вызываем вашу функцию скрытия
Call ToggleAllTables()
End If
End Sub
Sub Window_OnLoad()
Set document.onkeydown = GetRef("Document_OnKeyDown")
End Sub
</script>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style type="text/css">
|
Здесь я уже пробовал разные варианты _OnKeyDown, хотя должен быть по идее один. Был еще один вариант скрытия колонок от ИИ, может пригодится
| Code: | Sub HideSecondColumn()
Dim tables, table, row
Set tables = document.getElementsByTagName("table")
For Each table In tables
For Each row In table.rows
' Индекс 1 — это вторая колонка (счет с нуля)
If row.cells.length > 1 Then
row.cells(1).style.display = "none"
End If
Next
Next
End Sub |
Но со скрытием и отображением все и так нормально, не работает только горячий вызов.
Версия файла:
https://wdho.ru/gAhS
| Avada wrote: | | Что можно сделать, в компетенции CaptainFlint. |
Я понял. Просто оригинальный CEDF из пакета можно не трогать, а на сайте сделать примочку для скрытия столбцов и растягивания текста.
| Avada wrote: | | Но "то же самое" делать точно не надо, там пока что не всё в порядке: |
Полностью согласен. Проблема с секциями и офлайн просмотром действительно есть. Но речь шла больше о перспективах и направлении для дальнейшего развития, и в целом, мне это направление нравится, т.е. скрытие лишних колонок, жаль только не хватает знаний и компетенций в этом вопросе.
Хотя дело не только в лишних колонках. Хотелось бы еще шрифт другой и отступы между абзацами, как в CHM файле. |
|