Как читать объект JavaScript в CDATA - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь прочитать значение переменной в объекте JavaScript, который находится в CDATA на веб-странице. Объект очень странный, потому что он находится в формате a.b.c ... Я не думал, что можно создать такой объект JS, и, вероятно, он недопустим, потому что кажется, что он не работает вне CDATA.

<script type="text/javascript">
//<![CDATA[
a.b.c = {
    num : 100
};
//]]>
</script>

Как бы вы прочитали значение num в CDATA?

Спасибо.

Ответы [ 2 ]

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

Я нашел этот ответ:

<script>

var page = document.documentElement.outerHTML;
var pos = page.indexOf('num') + 5;
var id = page.substring (pos);

document.write (id.split(',')[0]);

</script>

На странице, на которой выполняется поиск, элемент поиска ("num") - это строка, которая больше нигде не отображается на странице.

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

@ SLaks: CDATA - это символьные данные, которые не должны интерпретироваться, но читаются как есть синтаксическим анализатором XHTML, никоим образом это не комментарий, который не должен интерпретироваться синтаксическим анализатором HTML. Это более чем очевидно по вопросу. «a.b.c» относится к набору свойств «c» свойства «b» объекта «a», который может быть определен где-то еще на HTML-странице или во внешнем скрипте, загружаемом страницей. Он не будет работать, если вы скопируете и вставите его вне контекста.

...