• ベストアンサー

openで開いた子ウィンドウで表示されているソースの一時保存先とファイル名の取得

openメソッドでURLを指定して子ウィンドウを開きます。 この時、子ウィンドウで表示されているURLのソースは、 一時ファイルとしてどこかに保存されていると思うのですが、 その保存先及びファイル名を親ウィンドウから取得することは 可能でしょうか。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ちょっと言葉の使い方が悪かったかもしれません。正確には、OSが管理しているというより、ブラウザアプリケーションが管理している部分でしょう。(つまり、ブラウザごとにバラバラ。) キャッシュフォルダの制御は、それぞれのブラウザが高速化や利便性の向上のためにこれからも変化しつづけると思われます。ちょっと覗いてみたのですが、IEは、ほぼプレーンな形で保存してますが、NNのキャッシュの仕方は、suqidのようなproxyサーバに近い保存の仕方をしてます。よって、仮にキャッシュされている場所またはファイルを特定しても、ユーザエージェント(ブラウザ)によって、アクセスするアルゴリズムを変える必要があります。 JavaScriptでの過去の履歴にアクセスするのは、history.*以外ではできなさそうですし、やはり難しいのではないでしょうか。 なぜキャッシュされているファイルと対応にこだわっているのかはちょっと分かりませんが、何らかの目的のための一つの方法としてそれがあるだけだと思うので、別なアプローチに変更した方が良いように思われます。

logique
質問者

補足

ありがとうございました。 他の方法を考えてみます。 ところで、前の回答にあった方法で、子ウィンドのURLを取得しようと 次の様なソースを書いてみましたが、子ウィンドのURLを 取得できませんでした。 以下のソースに問題はありますか? -- 以下ソース var child; function OpenWindow() { child = open("http://xxx.yyy.zzz/", ""); } function GetChildURL() { // parent_urlには、親ウィンドウのURLが入っているが、 // child_urlには、子ウィンドウのURLが入っていない var parent_url = location.href; var child_url = child.location.href; } -- 以上ソース

その他の回答 (1)

回答No.1

JavaScriptではブラウザ制御を超える範囲のことが出来てはまずいと思うのですが、ご質問の意味が「OSが管理しているブラウザ情報を保持するファイルの場所を取得する」ということでしたら、不可能かと思います。そうではなく、単に子ウィンドウが現在表示しているURLが知りたいだけであれば、 var a = (参照したいウィンドウ).location.href; のようにするのでしょうけど。

logique
質問者

補足

回答ありがとうございます。 質問の内容を補足させて頂きます。 IE,ネットスケープとも設定でキャッシュフォルダを指定できますよね。 そこで、現在表示しているURLのソースがキャッシュフォルダに何らかの ファイル名で保存されていると思います。次回同じURLを表示する時に、 URLとキャッシュフォルダのファイル名の対応を取る仕組みがあると 思うのですが、これはOSが管理する世界になってしまうのでしょうか?