javascript - доступ к комментариям - PullRequest
0 голосов
/ 02 марта 2012

У меня есть вопрос!Я не уверен, если это возможно, но ...

У меня есть на странице файл включения JavaScript.В верхней части файла находится комментарий, который выглядит примерно так:

/*
  Local site config.js 
  Last updated: 2012.01.04
*/

То, что я хотел бы сделать, находится в другом файле javascript (этот файл загружается после первого файла), как-то получить эту дату.Так что мой вопрос: как-то хранятся комментарии в DOM, или есть какой-то другой способ получить доступ к содержимому этого файла таким образом, чтобы я мог просто использовать регулярные выражения для его очистки и т. Д.?

По сути, у меня есть глобальный файл, который зависит от локальных файлов для некоторых параметров конфигурации, и есть множество сайтов, которые имеют свой собственный локальный файл конфигурации.Я хотел бы иметь возможность получить эту дату из локального файла .js в глобальном файле.Как локальные, так и глобальные файлы .js размещаются в одном домене, но сайты, содержащие файлы .js, могут находиться или не находиться в том же домене, что и файлы .js.

Я знаю, что ответ right состоит в том, чтобы обновить все локальные файлы .js, чтобы поместить эту дату в переменную .js, и, как долгосрочное решение, я, безусловно, намерен это сделать.Но в качестве краткосрочного решения единственное, что я могу изменить прямо сейчас, - это глобальный файл .js.Если это не может быть сделано, то это не может быть сделано, но я хотел изучить свои варианты, и до сих пор я не могу придумать какой-либо способ получить эту дату ... Так ... у кого-нибудь есть какие-нибудь идеи?

Ответы [ 3 ]

3 голосов
/ 02 марта 2012

Итак, мой вопрос, как-то хранятся комментарии в DOM ...

Нет.

... или есть какой-то другой способ получить доступ к содержимому этого файла таким образом, чтобы я мог просто использовать регулярные выражения для его очистки и т. Д ..?

Не без его второй загрузки через ajax, и это будет ограничено SOP . Например, вы можете сделать ajax GET для файла, который даст вам его текст, а затем применить регулярное выражение, чтобы найти бит после «Last updated:». Но файл .js должен находиться в том же источнике, что и HTML-документ, в котором вы это делаете (см. Ссылку для объяснения).

В идеале, как вы сказали, вы хотите изменить первый файл, чтобы он сохранял эту дату в переменной, к которой вы можете получить доступ. (Возможно, это будет глобальная переменная, которая далеко не идеальна, если у вас уже нет какой-то другой глобальной переменной, к которой вы можете прикрепить ее как свойство.)

0 голосов
/ 02 марта 2012

Вы можете использовать отражение, чтобы сделать это. Эта ссылка объясняет довольно сложный способ получения комментариев к коду из тела функции с помощью регулярного выражения, поэтому, возможно, это можно сделать и со всем файлом, но, вероятно, это намного сложнее, чем использование локальная переменная.

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

0 голосов
/ 02 марта 2012

Комментариев нет в DOM.Вы должны прочитать файл сценария.

См .: Как получить содержимое файла, указанного как 'src' тега ?

...