Как программно узнать (используя Node), как данная строка будет отображаться в браузере? - PullRequest
0 голосов
/ 30 октября 2018

Как получить строку, которую браузер визуализировал программно, используя Node / JS - то же самое, что если бы вы скопировали все в окне браузера?

Например, для данного источника HTML (обратите внимание на пробелы между "a" и "z"):

<html><head></head><body>a z</body>

, который отображается с одним пробелом в Chrome:

enter image description here

как бы вы получили эту строку с одним пробелом, a z?

Я попробовал Cheerio и JSDom, но после того, как я загрузил <html><head></head><body>a z</body> в виде строки и запросил содержимое body, я получил оригинальный фрагмент кода, содержащий много пробелов.

Спасибо.

1 Ответ

0 голосов
/ 30 октября 2018

Хороший вопрос, однако я не думаю, что найдется способ сделать это.

Во-первых, что в значительной степени объясняется в этой статье Когда в HTML имеет значение пробел? .

Поскольку пробелы никуда не уходят, а представляются таким образом только браузером, будет сложно устранить неполадки на стороне сервера. Для этого есть причины:

  • Вы не знаете, в каком браузере он будет отображаться, это может быть даже Lynx, будут ли отображаться пробелы или нет, вы не знаете.

  • Это означает, что, если бы это было возможно, вам пришлось бы тестировать каждый браузер в дикой природе.

  • Например, технология Server-Rendering-Rendering (SSR) частично применяет / отображает страницы на стороне сервера, но, тем не менее, потому что на самом деле нет устройства, которое будет отображать его, оно является частичным. Так что, скорее всего, вы получите те же места.

Мнимо возможным решением было бы использовать что-то вроде KarmaJS, установить какой-нибудь безголовый браузер на стороне сервера и выполнить несколько тестовых примеров, чтобы KarmaJS контролировал браузер для отображения страницы, и, возможно, вы сможете получить доступ к отрендерено, CSS применено и, мы надеемся, DOM. В чем я не уверен, и это будет ограниченный набор браузеров.

Другим мнимым возможным решением было бы использование движков WebKit или Blink, или, возможно, Electron, для некоторых попыток через API получить эту DOM.

...