Как проверить содержимое раздела заголовка - PullRequest
0 голосов
/ 26 ноября 2010

Я написал прокси-сервер, который добавляет тег комментария в HEAD-раздел каждой страницы.Теперь я хочу определить в файле JavaScript, присутствует ли там комментарий.

Как мне это сделать?

Вот пример страницы:

<html>
  <head><!-- page is proxified -->
    <title>Hello proxified world!</title>
  </head>
  <body>
     <script type="text/javascript">
       // What to do here?
     </script>
  </body>
</html>

Спасибо!

Иван

Ответы [ 4 ]

2 голосов
/ 26 ноября 2010

Возможно, но немного неудобно, читать ноды комментариев с помощью Javascript.Вам нужно будет найти элемент head, а затем перебрать его дочерние узлы, чтобы найти тот, который является комментарием (node.nodeType == 8) или, как уже указывали другие, получить весь head.innerHTML и выполнить регулярное выражение его.

Тем не менее, это может быть немного проще сделать, добавив какой-то другой элемент, например, метаэлемент (который также идет в голове), а затем вы можете получить к нему более легкий доступ с помощью getElementsByTagName () и / илиJQuery и т. д.

1 голос
/ 26 ноября 2010
var comment = '<!-- page is proxified -->',
    commentPresent = document.getElementsByTagName('head')[0].innerHTML.indexOf(comment) !== -1 ? true: false;

if (commentPresent) {
    // code
}
1 голос
/ 26 ноября 2010

JQuery:

var headContents = $('head').html();

Javascript:

var headContents = document.getElementsByTagName('head')[0].innerHTML;
0 голосов
/ 26 ноября 2010

Я не уверен на 100%. Но комментарии не пишутся в DOM. Поэтому невозможно получить его по xpath или как-то еще.

Вы можете получить все содержимое тега html по

document.getElementsByTagName('head').innerHTML;

и применить регулярное выражение.

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

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