нет полос прокрутки во всплывающем окне параметров, перенесенном из Chrome в Firefox webextension

Я переношу расширение Chrome в Firefox и тестирую версию Nightly 51a..

Когда я нажимаю значки всплывающих окон, они открываются, и появляются полосы прокрутки, а через полсекунды они исчезают.

Как это исправить?

На данный момент я дал гиперссылку в верхней части всплывающего окна optins с этим кодом, который при нажатии открывает полный просмотр html на новой вкладке, и это работает просто отлично:

<a style="font-size:1.5em;" href="options.html" target="_blank">Open Full Window</a>

введите здесь описание изображения


person user5858    schedule 20.08.2016    source источник
comment
Предоставьте минимальный воспроизводимый пример, чтобы мы могли воспроизвести проблему.   -  person Makyen♦    schedule 20.08.2016
comment
@Makyen это это расширение Chrome   -  person user5858    schedule 20.08.2016
comment
Спасибо за указание на ваше расширение. Вау! Как я рад, что загрузил исходный код, а не установил его. Вы вставляете 78 различных сценариев в каждую https: страницу (58 предназначены для конкретных банков, но загружаются на каждую страницу). Вы также загружаете больше скриптов на отдельные банковские страницы. Это и проблема безопасности, и проблема производительности. Невозможно, чтобы они загружались на каждую https страницу. Их следует загружать на страницы только тогда, когда ваше расширение активно их использует.   -  person Makyen♦    schedule 21.08.2016


Ответы (1)


Всплывающее окно, отображаемое для browser_action в настоящее время установлено максимальное разрешение 800x600 пикселей (по крайней мере, в моем тестировании). Однако ваш контент отображается в гораздо большем размере, а полосы прокрутки не отображаются пользователю (либо вообще не отображаются, либо располагаются за пределами представления в документе, предоставленном панелью).

Есть несколько способов решить эту проблему. Однако мне не удалось найти ни одного, который не привел бы к явному указанию height и width для <body> или подэлемента (например, <div>, охватывающего все содержимое). Несколько способов отображали полосы прокрутки, но оставляли их отключенными.

Самый простой способ отобразить полосы прокрутки — изменить HTML-код:

<body>

to:

<body style="height:580px;width:800px;">

Очевидно, вы также можете изменить это в своем CSS (banks/options.css). Из:

body{
    min-width:500px;
    min-height: 500px;
}

To:

body{
    height: 580px;
    width: 800px;
    min-width: 500px;
    min-height: 500px;
}

Однако ни один из них не допускает возможности отображения панели с разными размерами (например, на экранах другого размера или если Firefox изменит то, что он делает).

Таким образом, мое предпочтительное решение — использовать JavaScript. В options.js добавьте что-то вроде:

function setBodyHeightWidth(){
    let width=window.innerWidth;
    let height=window.innerHeight;
    height -= 20; //Adjust for Save button and horizontal scroll bar
    //document.body.style.width=width; //Does not work
    //document.body.style.height=height; //Does not work
    document.body.setAttribute('style','height:' + height + 'px;width:' + width + 'px;');
}

function onDOMLoaded(){
    setBodyHeightWidth();
    //Anything else you need to do here.
}

document.addEventListener('DOMContentLoaded', onDOMLoaded);

Используя значительно урезанную версию кода для вашего расширения (т. е. я удалил весь ваш JavaScript и большую часть невидимого HTML), приведенный выше код выглядит так:

Панель прокрутки

person Makyen♦    schedule 21.08.2016
comment
Спасибо, но на вкладке «Другие параметры» полоса прокрутки обрезается. Что делать? - person user5858; 21.08.2016
comment
@ user5858, хорошо. Мне нужно будет перенастроить то, что я сделал, чтобы убрать ваше расширение. Я удалил ту часть, которая позволяла переключать вкладки. Мне потребуется некоторое время, чтобы добраться до него. Сегодня также запланировано, что он будет довольно занят другими делами, поэтому может быть поздно, прежде чем я смогу взглянуть на него. - person Makyen♦; 21.08.2016
comment
@ user5858, для навигации по вашей панели требуется JavaScript, который у вас есть для страницы. Этот JavaScript запутан. Я не собираюсь его запускать. Если вы хотите предоставить версию, которая не запутана, я рассмотрю возможность потратить время на ее изучение из-за проблем с безопасностью (требуется до того, как я захочу ее использовать). Упрощенная версия, которая просто делает навигацию, была бы хороша. Я попытался отобразить только «Другие параметры» tab-pane и не столкнулся с подобными проблемами. Кроме того, вопрос, который вы задали в своем комментарии, на самом деле является другим вопросом, и его следует задавать как таковой. - person Makyen♦; 21.08.2016