2012-03-02 1 views
0

私は質問があります!これが可能かどうか分かりませんが...javascript - アクセスコメント

私はページにJavaScriptのインクルードファイルを持っています。ファイルの先頭にコメントで、この線に沿って何かになります:私は行うことができるようにしたいと思い何

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

すること(このファイルは最初のファイルの後にロードされる)別のJavaScriptファイル内にあります、何とかその日付を取得します。だから私の質問は、DOM内に何らかの形でコメントが格納されている、または私はちょうど正規表現を使用してそれをかき集めることができる方法でこのファイルの内容にアクセスする他の方法がありますか?

基本的には、いくつかの設定オプションのためにローカルファイルに依存するグローバルファイルがあります。また、独自のローカル設定ファイルを持つ大量のサイトがあります。グローバルファイル内のローカル.jsファイルからその日付を取得したいと考えています。ローカルとグローバルの両方の.jsファイルは同じドメイン上でホストされますが、.jsファイルを含むサイトは.jsファイルと同じドメインにある場合とそうでない場合があります。

私は正確にすべてのローカル.jsファイルを.js変数に入れるために、長期的な解決策として、私は確かにそれを行うつもりです。しかし短期的な解決策として私が今変更できるのはグローバル.jsファイルだけです。それができないなら、それはできませんが、私は自分の選択肢を探求したいと思っていましたが、今のところ私はその日付を得る方法を考えることができません...だれ...どんなアイディアがありますか?

+0

コメントは解析された後も保持されないので、テキストファイルのようにファイルを開いて、コメントを手動で読み込む必要があります。次に、これをファイルの日付変数として解析することができます。 – jzworkman

+0

@ T.J.Crowderでもそうですが、他のファイルにはアクセスできないようになっています。私はそれを反映するように編集しました。 – jzworkman

答えて

3

だから私の質問があり、何とかDOM内に格納されているコメント...

いやです。

...このファイルの内容にアクセスするには、正規表現を使用してそのファイルをスクラップするなどの方法がありますか?

ajax経由で2回目の読み込みを行わず、SOPによって制限されます。たとえば、ファイルにajax GETを入力すると、そのテキストが表示され、正規表現を適用して[最終更新日:]の後のビットを見つけることができます。しかし、.jsファイルはあなたがこれをやっているHTML文書と同じ起源でなければならないでしょう(その理由のリンクを参照)。

あなたが言ったように、最初のファイルを変更して、アクセス可能な変数にその日付を保存することが理想的です。 (これはおそらく、グローバル変数であり、これは理想的ではありません。既に他のグローバルを所有している場合を除き、プロパティとして貼り付けることができます)。

+1

ローカルの.jsファイルはかなり短く、短期的な解決策として2回目の読み込みを気にする必要はありませんが、あなたが指摘したように、とにかくajaxを使用することはできないことが分かりました。私は紛失していた魔法の杖が他にはないと思ったが、害はない。ありがとう! – slinkhi

+0

@mysql_noobie_xxxx:あなたが言うように、尋ねることに害はありません!幸運、 –

0

あなたはそれを行うためにリフレクションを使用することができるかもしれません。 This linkは、正規表現を使用して関数の本体からコードコメントを取得する方法を説明しているので、ファイル全体でこれを行うことも可能ですが、おそらくローカル変数を使用するよりも面倒です。

正規表現を使用してデータを抽出し、ローカル変数としてファイルに書き戻すには、問題のファイルをループするのにPHPなどを使用することをおすすめします。おそらく頭痛の少ない。

+1

* "あなたはそれを行うためにリフレクションを使うことができるかもしれません。"個々の機能には信頼性がありません。まず、このテクニックは 'Function#toString'を使用するため、特定の関数のソースでのみ動作します。次に、 'Function#toString'は標準化されておらず、実装が"ここにコード "を含めて好きなものを返すのは完全に容認されます(すべての主要な*デスクトップ*ブラウザはソースを返します)。第3に、 'toString'からソースを出すブラウザのすべてがコメントを含むわけではありません。 –

+0

十分に公正です。 「正しい」方法が唯一の方法であるように見えます。 –