javascript - 访问评论

时间:2012-03-02 15:32:10

标签: javascript regex comments code-comments

我有一个问题!我不确定这是否可行,但是......

我在页面上有一个javascript包含文件。在文件的顶部是一个注释,看起来像这样:

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

我希望能够做的是在另一个javascript文件中(此文件在第一个文件之后加载),以某种方式获取该日期。所以我的问题是,评论是以某种方式存储在DOM中,还是有一些其他方式来访问此文件的内容,我可以使用正则表达式来抓取它等等。

基本上我有一个全局文件,它取决于某些配置选项的本地文件,并且有很多站点都有自己的本地配置文件。我希望能够从全局文件中的本地.js文件中获取该日期。本地和全局.js文件都托管在同一个域中,但包含.js文件的站点可能与.js文件位于同一域中,也可能不同。

我知道正确的答案是更新所有本地.js文件以将该日期放在.js变量中,作为长期解决方案,我当然打算这样做。但作为一个短期解决方案,我现在唯一可以改变的是全局.js文件。如果它无法完成那么它就无法完成,但我想探索我的选择,到目前为止,我想不出任何方式来获得那个日期......所以......任何人都有任何想法?< / p>

3 个答案:

答案 0 :(得分:3)

  

所以我的问题是,评论是否以某种方式存储在DOM中......

不。

  

...还是有其他方法来访问这个文件的内容,我可以用正则表达式来抓取它等等。?

不是没有通过ajax第二次加载,而是受到SOP的限制。例如,您可以为文件执行ajax GET,它将为您提供文本,然后应用正则表达式查找“​​上次更新:”之后的位。但是.js文件必须与您正在执行此操作的HTML文档位于同一原点(请参阅链接了解原因)。

理想情况下,正如您所说,您希望修改第一个文件,以便将该日期保存在可以访问它的变量中。 (这可能最终会成为一个全局变量,这个变量不太理想,除非你已经有一些其他的全局变量,你可以把它作为一个属性。)

答案 1 :(得分:0)

评论不在DOM中。你必须阅读脚本文件。

请参阅:How can I get the content of the file specified as the 'src' of a <script> tag?

答案 2 :(得分:0)

您可以使用反射来完成它。 This link解释了一种使用正则表达式从函数体中获取代码注释的相关方法,所以也许可以用整个文件执行此操作,但它可能比使用局部变量更麻烦

我建议使用PHP或其他东西使用正则表达式循环访问相关文件,以提取数据并将其作为局部变量写回文件。可能不那么令人头痛。