プロが教えるわが家の防犯対策術!

 3個のフレームを入れ替えています。ファイルのフォルダの階層が同一でないと最後のフレーム内容が表示されません。

<A HREF="javascript:viewWin('dokue_2.htm','gazou_c1.htm#a_t1','../syasin/kobun/kan4_dokue_r.htm')" >横書</A>  
<A HREF="javascript:viewWin('dokue_dt_n_1.htm','../sya/bbb/gazou_c1.htm','../syasin/kobun/kan4_dokue_1.htm')">縦書</A>

上記方法でフレームを入れ替えています。
 下の例は、真ん中「gazou_c1.htm」で右の「kan4_dokue_1.htm」では内容を変えながら「dokue_dt_n_1.htm」の内容を変更しています。

 なぜか真ん中「gazou_c1.htm」と右の「kan4_dokue_1.htm」のload されるファイルのフォルダの階層が同一でないと「dokue_dt_n_1.htm」のフレームの内容が表示出来ません。

 そのような状態がなぜ発生するかご存知のかた教えて下さい。

「kan4_dokue_1.htm」の内容の一部
var img = new Array();
img[0] = "../../../h/dokue_dt_n_1.htm";
省   略
current = 0;
function next() {
if (document.slideform.slide[current+2]) {
window.parent.naiyoug.location.href =img[current+1];
document.images.show.src = document.slideform.slide[current+1].value;
document.slideform.slide.selectedIndex = ++current;}
else javascript:top.window.close();}
function previous() {
省   略
</HEAD><BODY>
<FORM name=slideform action="" method=post>
省   略
<SELECT onchange=change(); name=slide>
<OPTION value=dokue01.gif selected>説明 1/19
<OPTION value=dokue02.gif>説明2/19
省   略

環境は、WindowsXP(Service Pack2) IE6

よろしくお願いします。

A 回答 (3件)

大変申し訳ございません。


いろいろ調べさせて頂きましたが、
やはり当方の環境で再現できないのが厳しく
詳しくはお答えできません。
お力になれず、すみません。

結局再現出来ないので推測と調べ方の記述だけ
なにかの参考になればと・・・。

まず、「フォルダの階層が同一」という事について。
これを同一階層の別フォルダではどうか調べ
フォルダ自体が違うと階層が同じでも同様の障害が起きるなら
セキュリティがらみで仕様の問題かと。
まずその可能性は低いですが、その場合は仕様とあきらめるしか・・・。


次にそれが別フォルダでも階層さえ同じなら障害が起きないなら、相対アドレスのデータの解釈のタイミングの仕様の問題かと・・・。
相対アドレスが問題なら、絶対アドレスで検証してみて
階層が異なっても絶対アドレスなら障害が発生しないなら、解釈のタイミングの仕様という事で・・・。
絶対アドレスで指定する様に変更すれば、ローカルでの検証が面倒ですが、
汎用性は不要と思われるので問題ないかと。
それでも相対アドレスで記述したい場合は、
文字列編集で相対アドレスから絶対アドレスを編集する。
基準フォルダ名を決めて、現在のアドレスを取得し
そのアドレスから基準フォルダ名でサーチしそのフォルダより上位のみ使用,
以下を切り落としてそれぞれの指定したいアドレスを繋ぎ合わせて
絶対アドレスの作成と・・・。
可変ではあるが絶対アドレスなので解釈のタイミングには左右されません。
また、ローカル(オフライン)での検証時にも
ローカルな同一PC上のファイルを見てくれます。
尚、固定でオンライン用,オフライン用としないのは、
オフラインの扱いがブラウザで異なっている為の汎用性を考えての事です。
尚、編集のタイミングはソースのロード時でよいと思います。

他にも処理自体をそれぞれのファイル(HTMLファイル)に保持させ
他のHTMLファイルの処理を動作させるのではなく
それぞれの処理を各フレーム状況を判断して
制御させるなどが考えられますが・・・。



それから最後に質問方法への補足(蛇足)ですが、
しょうがない goo の削除は仕方がないとして
個別に指摘しますと、
質問でのアンカーの記述(<A HREF="javascript:viewWin~)は
viewWinが解らないと・・・
next() 関数が書かれていますが、どこでどう使うかが・・・
change() 関数が使われていますが中身が不明・・・。

file0.htm の内容として、
<A HREF="javascript:
parent.frame1.location.href = 'file1.htm';
parent.frame2.location.href = '../h1b/h2a/file2.htm';
parent.frame3.location.href = '../h1b/h2b/file3.htm';
>内容変更</A>

file2.htm の内容として、
<A HREF="javascript:parent.frame3.f3func();">file4変更</A>

file3.htm の内容として、
function f3func(){
window.parent.naiyoug.location.href = '../../../h1a/file4.htm'
}

以上で良いかと。
(フレームの記述があれば尚良いかと・・・。)
というか、この様な絞込み動作確認をしないと、
ソースの一括提示による質問しか出来ないし・・・。
そうすると、削除されかねないし・・・。

なんかこちらの質問文読み落しが急に不安になたので、
初期表示は階層関係なく問題ないですよね?
真ん中に関係なく、右での操作では左は適切に表示できますよね?
真ん中と右の階層が異なった場合で真ん中の操作で左が障害起きるのですよね・・・。

この回答への補足

ご教示ありがとうございます。

 javascriptは、いろいろ検索して主のjavascriptをCOPYし他の検索内容で不足処理の追加がようやく出来る能力しか持っていません。
 
 javascript初心者で質問のポイントも不明の内容記述に 回答ありがとうございました。

 下記表の2写真の説明を表示させる処理の追加「window.parent.naiyoug.location.href =img[current+1];」により発生したのが頭にあり其れしか考えいなかったので

 ご指摘いただいたように考えを変えて絶対アドレスのテストと再度簡単の方法で作製して見ます。(いろいろ検索して見ます)

 1写真→1写真の説明
 2写真→2写真の説明
  ・     ・
10写真→10写真の説明

 作製方法は、上記表のように 2写真が表示したら2写真の説明を表示させるをカウントでコントロールで表示しています ご指摘の「file3.htm 」の中両方の処理しています。

補足日時:2005/02/04 18:38
    • good
    • 0
この回答へのお礼

 ご教示ありがとうございます。
 再度いろいろ勉強してご指摘のような簡単方法で考えて見ます。

お礼日時:2005/02/12 17:33

まとはずれかも知れませんが


別件で一部類似案件があり
単に思いついた事を提示させて頂きます。

もしかして、サーバー側の問題かも・・・。
SSL が関わっているかもしれません。
一応、ご自分の PC でのローカルな動作もご確認される事をお勧めします。

また、この件で解決できない場合の対処方法として
サーバー側にて .htaccess の対処で
ソースの複数作成は不要かも? という
(Redirect を使用・・・って効果ないかも)

ちょっと難しそうな案件なので、
無駄かどうか考えず、思いつく物を
とりあえず・・・。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご指摘のように難しい問題で質問の記述がうまく出来ません。

 当質問では PC でのローカルで作製している内容で変な指定で動いています、其方で質問したいのですが質問の内容が記述できず、類似項目で質問しました。

 ご指摘の問題でも発生するのですね、有難う御座います。 

お礼日時:2005/02/07 07:26

>フォルダの階層が同一でないと


アドレス指定が相対指定なので、
たぶん相対的階層が同一階層なのでしょう。

ご質問の内容,文章からでは、
少々 詳細にはお答えが難しいかと。

ただ、推測ですがポイントは、
記述されたアドレス(相対指定)が
どの位置で解釈されているかではないかと思います。
決して、どこで記述されているかではないので
その点を注意してご確認下さい。



それから、少々蛇足になりますが、
状況が解らない問題で、
もとネタを一部省略する形で提示されても
あまり参考になりませんので
ご注意下さい。
(問題点が解らない場合は、省略できるのも不自然)
提示するのは問題の箇所。特定できない場合は、それら全て・・・。
全てか困難な場合は、その代用品・・・。
そう、出来れば
同一の障害の起きる簡易なサンプルを作られて提示頂けると
回答もし易いので、ご考慮頂ければ幸いです。
今回の質問でも
問題点を意識する前に
質問のソースを理解するのに手間がかかり・・・。
(別にそれぞれのファイル名をfile01.htm, file02.htm, file03.htm とかに変更して
仮に操作しても、現象に変化はないと思うのですが
如何でしょうか?)


尚、一般論でよろしければ
改めてご質問頂ければ、回答します。
現状では、相対指定を記述した位置で解釈するのではなく
動作する位置で解釈しなおすという事しか言えません。
申し訳ございませんが
その先はご自分で処理を追って下さい。

この回答への補足

>もとネタを一部省略する形で提示されてもあまり参考になりませんのでご注意下さい。
 何が特定できないので前回質問時掲載ホームページのアドレスを記載したら削除されましたので質問内容を変更しました。
 800文字以上の質問は掲載できないようようですので すいません。

>一般論でよろしければ改めてご質問頂ければ、回答します。
 よろしくお願いします。同一処理でService Pack2とService Pack1で処理方法が異なるので質問(回答無し)の解決になるかも。

 よろしくお願いします。

補足日時:2005/02/02 23:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!