Скрипты для работы в режиме двух фреймов

75 views
Skip to first unread message

Sclex

unread,
Jun 15, 2026, 11:37:26 AM (13 days ago) Jun 15
to Fiction Book Editor
Приветствую.

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

Раньше человек под ником vaimanmichael высказал пожелание, чтобы в FBE была возможность разделять экран редактора на две части. Я вначале подумал, что такое можно сделать, только путем доработки C++-ной части редактора. Однако спустя какое-то время возникла идея, как реализовать разделение экрана средствами JavaScript-а.

Я сразу не знал, насколько хорошо сработает эта идея. Мне было так интересно это проверить, что я не удержался и воплотил идею в программном коде (при написании кода использовался ИИ DeepSeek). (Твои наработки для DeepSeek-а, TaKir, при этом использованы не были.)

В целом, идея сработала. Хотя с некоторыми недостатками.

На текущий момент сделаны два скрипта:
01_Текст документа продублировать во втором фрейме.js (Версия 1.0)
и
03_Закрыть второй фрейм.js (Версия 1.0)

Скрипт "01_Текст документа продублировать во втором фрейме" создает второй фрейм, находящийся под основным фреймом. Выглядит это вот так:

Clipboard89.png

Перетягиванием разделителя между двумя фреймами - можно изменять высоту фреймов. Во всяком случае, у меня в IE6 это работает.

Второй скрипт, соответственно, *закрывает* дополнительный фрейм.

Недостатки работы в режиме двух фреймов:

1) Невозможно при открытом втором фрейме произвести валидацию документа либо сохранение его на накопитель. Выдает такую ошибку:

Clipboard90.png

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

2) При выполнении замен по всему документу (диалог "Заменить") - замены выполняются в обоих фреймах.

3) Текст документа во втором фрейме *не изменяется* автоматически вслед за изменениями в основном фрейме, - он остается "в застывшем состоянии". (Если только пользователь *сам* не вносит изменения в текст во втором фрейме.)

***

Ссылки для скачивания файлов скриптов:
(Использование скрипта "01_Текст документа продублировать во втором фрейме.js" требует обновления файлов main.css и main_fast.css.)
01_Текст документа продублировать во втором фрейме.js (положить в папку "Scripts\99_Прочее")
03_Закрыть второй фрейм.js (положить в папку "Scripts\99_Прочее")
main.new01.css (положить в папку FBE - туда же, где находится файл fbe.exe. Данный css-файл, чтобы он работал, нужно переименовать в main.css)
main_fast.new01.css (положить в папку FBE - туда же, где находится файл fbe.exe. Данный css-файл, чтобы он работал, нужно переименовать в main_fast.css)

Желающие могут попробовать данные сценарии и высказать свои соображения по поводу них.

Sclex

unread,
Jun 15, 2026, 12:59:19 PM (13 days ago) Jun 15
to fiction-b...@googlegroups.com
А, еще забыл сделать удаление атрибутов id перед дублированием текста во второй фрейм. В документе *не могут* присутствовать одновременно два (либо более) элементов с одинаковым id.

Sclex

unread,
Jun 15, 2026, 2:16:07 PM (13 days ago) Jun 15
to Fiction Book Editor
Скрипт "01_Текст документа продублировать во втором фрейме.js" обновлен до версии 1.1.
- теперь текст из основного фрейма, перед дублированием его (текста) во второй фрейм, будет очищен от атрибутов id.
- теперь запуск данного скрипта не будет рвать цепочку Undo (Откат).

Скрипт "03_Закрыть второй фрейм.js" обновлен до версии 1.1.
- теперь запуск данного скрипта не будет рвать цепочку Undo (Откат).

Ссылки для скачивания файлов скриптов:
(Использование скрипта "01_Текст документа продублировать во втором фрейме.js" требует обновления файлов main.css и main_fast.css.)
01_Текст документа продублировать во втором фрейме.js (положить в папку "Scripts\99_Прочее")
03_Закрыть второй фрейм.js (положить в папку "Scripts\99_Прочее")
main.new01.css (положить в папку FBE - туда же, где находится файл fbe.exe. Данный css-файл, чтобы он работал, нужно переименовать в main.css)
main_fast.new01.css (положить в папку FBE - туда же, где находится файл fbe.exe. Данный css-файл, чтобы он работал, нужно переименовать в main_fast.css)

понедельник, 15 июня 2026 г. в 19:59:19 UTC+3, Sclex:

Sclex

unread,
Jun 15, 2026, 2:19:09 PM (13 days ago) Jun 15
to fiction-b...@googlegroups.com
> - теперь текст из основного фрейма, перед дублированием его (текста) во второй фрейм, будет очищен от атрибутов id.

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

пн, 15 июн. 2026 г. в 21:16, Sclex <scl...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/9ffdf112-55bf-49d3-8eec-67a03ec4a912n%40googlegroups.com.

e-paper.ru

unread,
Jun 15, 2026, 4:17:29 PM (13 days ago) Jun 15
to fiction-b...@googlegroups.com
>> Скажу сразу - *не утверждаю*, что скрипты, которые предлагаю в данном "обсуждении", пригодны для практического использования.

>> Раньше человек под ником vaimanmichael высказал пожелание, чтобы в FBE была возможность разделять экран редактора на две части. Я вначале подумал, что такое можно сделать, только путем доработки C++-ной части редактора. Однако спустя какое-то время возникла идея, как реализовать разделение экрана средствами JavaScript-а.

Привет, мысль с разделением окна редактора интересна, наверное, для 2 разных открытых документов.

Вообще сам ты как видишь хоть какое-нибудь практическое применение этой опции? Раз ты сделал - значит какие-то наметки были?
И какую задачу хотел решить с помощью этого тов.  vaimanmichael ?
Просто два документа всегда можно запустить в 2 окнах редактора и реализовать любую работу с этими отдельными текстами.

У меня была мысль делать скрипт сравнения "текстов" в едином html окне, разделенном на 2 части.
По типу text compare compare it и подобных.
Под "текстами" имею в виду сравнение версий fb2 документов во всех возможных формах - в html виде, xml виде и в чистом плэйн тексте в этом html окне.
Но там планируется просто сравнение, без редактуры, например сравнивать документ до обработки каким-то скриптом и после сразу в редакторе.



пн, 15 июн. 2026 г. в 18:37, Sclex <scl...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/2fc6b174-ceaa-4110-85f5-c51bcbcf2c10n%40googlegroups.com.

Lancer

unread,
Jun 15, 2026, 6:49:26 PM (13 days ago) Jun 15
to Fiction Book Editor
>> ты как видишь хоть какое-нибудь практическое применение этой опции?

Скажу своё. 

1. Джемини как раз мне предлагал такое разделение при правке скрипта с таблицами, чтобы не в браузер кидать, и не терзать несуществующий IE, а "встроить" отображение как бы в движок FBE. Нечто такое, для сложных скриптов. Но я идею сразу отмёл, поскольку понимаю, что качественно не оценю код, а сломать программу наверное несложно. Она и так работает не всегда устойчиво (особенно в переключении между режимами B и S (тело и код). Хотя на будущее может и пригодится такое для чего-то.

2. Самое насущное для чего два окна одного документа (книги) хороши - проверка маркеров сносок и текстов сносок. Т.е. сверху текст книги со сносками, снизу body notes, и чтобы скроллинг не слипался в окнах, что одно крутишь, а другое начинает бегать.

3. Еще более насущное, имхо, но и маловероятное, скорее всего, это два окна для двух режимов -  B и S (тело и код). Чтобы видеть текущий код видимой страницы. Это как раз синхронный скроллинг. Зачем? Как сказал - переключение режимов почему-то не очень стабильное. Постоянно приходится искать место курсора, оно всегда куда-то ускользает. Если в В стоял на заголовке, то в S оказываешься на 5-6 крупных абзацев ниже. Даже если выделяешь несколько слов, переходишь, всё равно текст смещается, листай, ищи. Даже с выделением не сразу находишь.
Т.е. когда используешь оба режима - намного удобнее два окна. Причем, еще вопрос как лучше, может и по вертикали разделить. Если не нужно, то "второй экран" выключаешь. 
Для сравнения одной книги до и после правки тоже полезно. Проги такие я откопал, поставил, но всё же удобнее проверять именно в редакторе, т.к. в сравнилках править текст нельзя или нежелательно.

4. И заодно спрошу, в т.ч. и автора (Sclex) - в FBE в левой панели Структура документа (книги) т.н. кнопка "Элементы" показывает и дает их включать. С этим вопросов нет. А что за "Скрипты" рядом? Как этим пользоваться? "Пример 1", что там есть, вставляет "теги" в код вместо пустых строк вроде бы (точно не помню, не важно), а что еще и как туда накидать и как пользовать? Папка TreeCmd для наполнения?

5. Созвучное с п. 4. Может это и почти то же. Где-то тут уже спрашивал: а нельзя ли такую же панель как Структура документа интегрировать рядом, но именно для скриптов. Т.е. это нечто вроде Дерева скриптов, повтор меню, но не сверху, всё время свернутое, а сбоку (например справа), где можно развернуть скрипты, как структуру книги слева. Иногда, пробуя, в скрипты залезаешь десятки раз, а в виде структуры один раз развернув нужное можно просто кликать строчки названий скриптов. ИМХО, это было бы очень удобное дерево. Если не справа, то вместо Структуры книги.
понедельник, 15 июня 2026 г. в 23:17:29 UTC+3, TaKir:

Sclex

unread,
Jun 16, 2026, 3:58:14 AM (12 days ago) Jun 16
to Fiction Book Editor
> Вообще сам ты как видишь хоть какое-нибудь практическое применение этой опции? Раз ты сделал - значит какие-то наметки были?

Я решил, раз два фрейма с документом были в редакторе fb3edit.org и раз о них попросил vaimanmichael, значит это зачем-то кому-то нужно. Я не задумывался, для чего именно это нужно.

> И какую задачу хотел решить с помощью этого тов.  vaimanmichael ?

А он вот написал:

"Зачем это нужно. Иногда приходитья копипастить отрывки текста из одной части документа в другую. Например, раскладывать примечания бывшие просто текстом по "ячейкам" созданным скриптом, которые в готовой книге будут линками и позволят читающему удобно гулять по готовой книге."

понедельник, 15 июня 2026 г. в 23:17:29 UTC+3, TaKir:
>> Скажу сразу - *не утверждаю*, что скрипты, которые предлагаю в данном "обсуждении", пригодны для практического использования.


>> Раньше человек под ником vaimanmichael высказал пожелание, чтобы в FBE была возможность разделять экран редактора на две части. Я вначале подумал, что такое можно сделать, только путем доработки C++-ной части редактора. Однако спустя какое-то время возникла идея, как реализовать разделение экрана средствами JavaScript-а.

Sclex

unread,
Jun 16, 2026, 4:20:30 AM (12 days ago) Jun 16
to Fiction Book Editor
> в FBE в левой панели Структура документа (книги) т.н. кнопка "Элементы" показывает и дает их включать. С этим вопросов нет. А что за "Скрипты" рядом? Как этим пользоваться?

Это для специальных скриптов дерева элементов. Каждый из таких скриптов вставляет в документ специальные теги, и в дереве документа появляются "элементы", соответствующие фрагментам текста, размеченным этими тегами. И можно, кликая по "элементам" в дереве, переходить на фрагменты текста, которые были размечены тегами.

На практике это не используется. Насколько я понимаю, теги, вставленные в документ скриптами дерева элементов, будут мешать работе "обычных" скриптов.

> Где-то тут уже спрашивал: а нельзя ли такую же панель как Структура документа интегрировать рядом, но именно для скриптов.
Я счас такое не сделаю.

вторник, 16 июня 2026 г. в 01:49:26 UTC+3, lanc...@gmail.com:

Sclex

unread,
Jun 16, 2026, 4:22:02 AM (12 days ago) Jun 16
to Fiction Book Editor
> и в дереве документа появляются "элементы", соответствующие фрагментам текста, размеченным этими тегами.

Под "деревом документа" имелась в виду панель "Структура документа".

вторник, 16 июня 2026 г. в 11:20:30 UTC+3, Sclex:

Sclex

unread,
Jun 16, 2026, 6:23:03 AM (12 days ago) Jun 16
to fiction-b...@googlegroups.com
> переключение режимов почему-то не очень стабильное. Постоянно приходится искать место курсора, оно всегда куда-то ускользает. Если в В стоял на заголовке, то в S оказываешься на 5-6 крупных абзацев ниже. Даже если выделяешь несколько слов, переходишь, всё равно текст смещается, листай, ищи. Даже с выделением не сразу находишь.

Если до перехода в режим Source вы выделили нужный вам текст, то после перехода в этот режим (Source) вы можете нажать "стрелка вправо", "стрелка влево" - и редактор покажет нужное место - место, где находится курсор.

вт, 16 июн. 2026 г. в 01:49, Lancer <lanc...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/520e6e25-d2f8-4c20-b476-3d5e9c4f5c4an%40googlegroups.com.

Sclex

unread,
Jun 16, 2026, 6:45:15 AM (12 days ago) Jun 16
to Fiction Book Editor
> Если до перехода в режим Source вы выделили нужный вам текст, то после перехода в этот режим (Source) вы можете нажать "стрелка вправо", "стрелка влево" - и редактор покажет нужное место - место, где находится курсор.

Lancer, если вам нужно, чтобы выделение сохранилось, то можете нажать "Shift+Стрелка вправо", "Shift+Стрелка влево". Я убедился, что это работает. (Под "Стрелкой вправо" и "Стрелкой влево" я имею в виду клавиши клавиатуры (а не какие-нибудь там экранные)).

вторник, 16 июня 2026 г. в 13:23:03 UTC+3, Sclex:

Lancer

unread,
Jun 16, 2026, 12:28:08 PM (12 days ago) Jun 16
to Fiction Book Editor
>> Это для специальных скриптов дерева элементов. Каждый из таких скриптов вставляет в документ специальные теги, и в дереве документа появляются "элементы", соответствующие фрагментам текста, размеченным этими тегами. И можно, кликая по "элементам" в дереве, переходить на фрагменты текста, которые были размечены тегами.

Понятно, что для спецскриптов, но остальное непонятно.
Пример 1 помечает отсутствие точки в абзаце (неидеально, кстати, помечает, где-то пропуская, где-то - зря) тегами <abc>слова-слова</abc>. Валидатор запинается за невалидный тег, что позволяет быстрее находить огрехи текста.
Но это про тег, а не про кнопку. В чем ее смысл? Ведь есть "стандартные" скрипты Поиск форматирования, там чего только нет. Но эти скрипты "не в списке". Не ясна идея этой кнопки в Структуре документа. 

Мой п. 5 про дерево скриптов, это близкое к этой кнопке. Там это дерево скриптов и могло бы размещаться. Насчет реализации не знаю, наверное это С++, JS вряд ли, хотя не уверен. 

>>Если до перехода в режим Source вы выделили нужный вам текст, то после перехода в этот режим (Source) вы можете нажать "стрелка вправо", "стрелка влево" - и редактор покажет нужное место - место, где находится курсор

Да, в режиме B выделяю кусок текста (несколько слов) и жму кнопку S, переходя в режим кода (Source). Иногда видимая часть текста кода открывается так, что выделенное мною находится на экране (искать не нужно, кусок выделен и виден сразу), но чаще выделенный кусок где-то ниже, скролл вниз и только тогда выделенный кусок увидишь. Но это не есть правильная работа вывода на экран нужного фрагмента текста. Он остается выделенным, но спрятан. Если тыкнуть кнопки Вправо/Влево, курсор "появится перед глазами", в нужном месте, но уже без выделения. Что в принципе понятно, т.к. перемещение курсора кнопками системное или кастомное выделение всегда сбрасывает.

Это обычное поведение редактора, т.е. у всех так или снова вероятные заморочки, связанные с Виндой?

>>можете нажать "Shift+Стрелка вправо", "Shift+Стрелка влево"

Да, работает, очень упрощая дело, но логика подсказывает, что это лишнее действие. Почему-то редактор то хорошо показывает место, то (чаще) не хочет этого делать.
Без выделения переход в S вообще становится проблемой, курсор увидеть намного сложнее, чем выделение. Стрелки помогают, но не лучшим образом. Стрелки с Shift снова выручают, выделяя букву, где курсор.

Спасибо, век живи - век учись! Лишние кнопки, но хотя бы избавляет от ненужного скроллинга.
вторник, 16 июня 2026 г. в 11:20:30 UTC+3, Sclex:
> в FBE в левой панели Структура документа (книги) т.н. кнопка "Элементы" показывает и дает их включать. С этим вопросов нет. А что за "Скрипты" рядом? Как этим пользоваться?

Sclex

unread,
Jun 16, 2026, 12:45:12 PM (12 days ago) Jun 16
to Fiction Book Editor
> Но это про тег, а не про кнопку. В чем ее смысл? Ведь есть "стандартные" скрипты Поиск форматирования, там чего только нет. Но эти скрипты "не в списке". Не ясна идея этой кнопки в Структуре документа.

Нажатие кнопки "Пример 1" создает (ну, *может* создавать) "элементы" на панели "Структура документа". Вот снимок для примера:

Clipboard91.png

Скрипты же в подменю "Поиск форматирования" "элементов" на этой панели не создают.

вторник, 16 июня 2026 г. в 19:28:08 UTC+3, lanc...@gmail.com:

Sclex

unread,
Jun 16, 2026, 12:46:20 PM (12 days ago) Jun 16
to Fiction Book Editor
> Скрипты же в подменю "Поиск форматирования" "элементов" на этой панели не создают.

И *не могут* создавать.

вторник, 16 июня 2026 г. в 19:45:12 UTC+3, Sclex:

Sclex

unread,
Jun 16, 2026, 12:53:04 PM (12 days ago) Jun 16
to Fiction Book Editor
> Да, в режиме B выделяю кусок текста (несколько слов) и жму кнопку S, переходя в режим кода (Source). Иногда видимая часть текста кода открывается так, что выделенное мною находится на экране (искать не нужно, кусок выделен и виден сразу), но чаще выделенный кусок где-то ниже, скролл вниз и только тогда выделенный кусок увидишь. <...>
> Это обычное поведение редактора, т.е. у всех так или снова вероятные заморочки, связанные с Виндой?

У меня тоже так работает. Не знаю, правда ли, что *чаще* выделенный фрагмент оказывается "за пределами экрана",  но что такое случается *как минимум иногда* - проверка на моем компьютере подтвердила.

> Но это не есть правильная работа вывода на экран нужного фрагмента текста. Он остается выделенным, но спрятан.

То, что это неправильно, - это понятно. Проблема в том, что это вроде как некому исправить.

> Спасибо, век живи - век учись! Лишние кнопки, но хотя бы избавляет от ненужного скроллинга.

Пожалуйста.

вторник, 16 июня 2026 г. в 19:28:08 UTC+3, lanc...@gmail.com:
>> Это для специальных скриптов дерева элементов. Каждый из таких скриптов вставляет в документ специальные теги, и в дереве документа появляются "элементы", соответствующие фрагментам текста, размеченным этими тегами. И можно, кликая по "элементам" в дереве, переходить на фрагменты текста, которые были размечены тегами.

stokber

unread,
Jun 19, 2026, 7:24:45 AM (9 days ago) Jun 19
to Fiction Book Editor
При замене css-файлов  в окне Описания документа (D) пропадает скроллинг.
У меня так. Win7.

вторник, 16 июня 2026 г. в 19:53:04 UTC+3, Sclex:

Sclex

unread,
Jun 19, 2026, 8:06:49 AM (9 days ago) Jun 19
to Fiction Book Editor
> При замене css-файлов  в окне Описания документа (D) пропадает скроллинг.

stokber, да, действительно. Спасибо, что сообщили. Постараюсь исправить эту неправильность.

пятница, 19 июня 2026 г. в 14:24:45 UTC+3, sto...@gmail.com:

Sclex

unread,
Jun 19, 2026, 11:41:12 AM (9 days ago) Jun 19
to fiction-b...@googlegroups.com
> При замене css-файлов  в окне Описания документа (D) пропадает скроллинг.

Ай, наверно ну их нафиг, эти скрипты для работы в режиме двух фреймов. У меня не получилось исправить эту ошибку.

пт, 19 июн. 2026 г. в 14:24, stokber <sto...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/0a7ad10c-50ff-4762-a051-dfd395aa7013n%40googlegroups.com.

stokber

unread,
Jun 19, 2026, 3:25:20 PM (9 days ago) Jun 19
to fiction-b...@googlegroups.com
Ну да и бог с ними, с этими фреймами, В свете того, что все то же можно сделать с двумя обычными окнами FBE, полезность такого скрипта неочевидна.  

пт, 19 июн. 2026 г. в 18:41, Sclex <scl...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/CAKw_SM1GodsgbSOHFjfndKF48wDe_Soc2zmzN%3DLyN%3Dc%2BtgWUUw%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages