Как получить высоту элемента div javascript без загрузки в HTML DOM

Я создал новый элемент div в JavaScript и добавил текстовое содержимое. Теперь мне нужно было получить высоту div, созданного в JavaScript.

Образец кода:

const str = 'One of the important elements of a web application is form processing and file uploads. PHP has excellent support for these kind of things which makes it so popular with developers.';

const container = document.createElement('div');
container.style.width = '1020px';
const textContent = document.createTextNode(str)
container.appendChild(textContent);

const width = container. ???   // Should be in number like container.clientHeight
const height = container. ???

Текстовый контент будет расти в зависимости от темы. Как я могу получить высоту и ширину виртуального элемента div без загрузки в HTML DOM.

Примечание. Я не добавляю div в настоящий html-документ. Только что созданный в javascript, и я конвертирую div в PDF, для этого мне нужны высота и ширина div.

Пожалуйста, помогите мне, как это сделать.


person Sreedharan    schedule 12.10.2018    source источник
comment
Если элемент не добавлен в DOM, откуда у него может быть высота? Его не существует ни в каком визуальном смысле.   -  person Turnip    schedule 12.10.2018
comment
@Turnip Я применил ширину, основываясь на ширине, которая мне нужна, и на высоте.   -  person Sreedharan    schedule 12.10.2018
comment
установите абсолютную позицию и огромное отрицательное верхнее смещение: затем добавьте элемент в тело, прочитайте offsetHeightproperty и удалите элемент из DOM   -  person Fabrizio Calderan    schedule 12.10.2018
comment
@fcalderan - В настоящее время я делаю то же, что вы сказали, но это показывает мерцание.   -  person Sreedharan    schedule 12.10.2018
comment
Затем сделайте visibility:hidden тоже.   -  person Mr Lister    schedule 12.10.2018
comment
@MrLister - мерцание происходило из-за того, что некоторое содержимое добавляется в HTML DOM, если вы сделаете visibility:hidden, содержимое не будет видно, но высота тела будет увеличиваться и уменьшаться.   -  person Sreedharan    schedule 12.10.2018
comment
Нет, если вы установите абсолютную позицию за кадром, как сказал @fcalderan.   -  person Mr Lister    schedule 12.10.2018
comment
@Turnip - указанный вопрос не оправдал моих ожиданий. поэтому, пожалуйста, удалите повторяющийся тег из этого вопроса.   -  person Sreedharan    schedule 12.10.2018
comment
Не могли бы вы воспроизвести проблему мерцания на скрипке?   -  person Fabrizio Calderan    schedule 12.10.2018
comment
@MrLister - я не знаю, какая будет высота, тогда как я могу определить отрицательное смещение. Если его очень большой контент, это означает, что он будет иметь размер около 5000 пикселей или больше. тогда как ?   -  person Sreedharan    schedule 12.10.2018
comment
@Sreedharan Объясните, почему ваш вопрос не является дубликатом связанного вопроса. Расскажите нам, почему ответ на этот вопрос не сработал.   -  person Turnip    schedule 12.10.2018
comment
@Turnip - в указанном вопросе нет проблем с загрузкой созданного элемента в HTML DOM, но в моем случае мне требовался вывод без загрузки элемента в HTML DOM. Это главное отличие...   -  person Sreedharan    schedule 12.10.2018