Можете ли вы получить значение из атрибута, как он появился в источнике? - PullRequest
0 голосов
/ 22 ноября 2018

Комментируя этот вопрос заставил меня задуматься.

В JavaScript возможно ли получить «сырое» значение атрибута HTML, то есть способ, которым он был написан в источникеперед разбором?

Скажем, у вас есть этот HTML:

<section id="theSection" title="The&#32;section">The section</section>

<script>
 console.log(document.getElementById('theSection').title);
</script>
 

Что мне нужно написать в сценарии, чтобы он выводил исходное экранированное значение заголовка, а не проанализированное?
Узлы JavaScript имеют многосвойств и значений, но в этом случае, ни один, который говорит "The&#32;section" вместо "The section".

1 Ответ

0 голосов
/ 23 ноября 2018

Невозможно получить анализируемый символ Unicode в браузере, как исходный HTML-файл, и, поскольку &#32; - это пробел, мы можем использовать этот обходной путь для любого заголовка с пробелом между его словами.

<section id="theSection" title="The&#32;section">The section</section>

<script>
 console.log(document.getElementById('theSection').title.split(' ').join('&#32;'));
</script>
 

Я знаю, что это глупый ответ, но если он действительно предназначен для обработки космического юникода, нажмите URL-адрес, который имеет <section id="theSection" title="The&#32;section">The section</section> с fetch(url), как показано ниже:

fetch('stackoverflow.com')
  .then(async (res) => {
    const text = await res.text();
   // process the text with any unicode charachter as it is now 100% string 
  }
);

Теперь исходный HTML-файл представляет собой строку.В вашем случае лучше использовать javascript в строке с регулярным выражением, чтобы найти то, что вы хотите обработать в html-источнике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...