2017-09-23 7 views
0

子要素からのリンクの関係に問題がありますが、親フレームからの更新機能は失われます。私は参照文書を呼び出すためにこのコードを利用しています。子からのリンク、親参照の維持

function Open_Ref() { 
X = (screen.width - 900)/2; 
Y = (screen.height - 700)/2; 
settings = 'resizable=yes,scrollbars=yes,height=700,width=900,top=' + Y + ',left=' + X; 
theURL = '../dir/foo.htm#' + parent.MAIN.frame_id; 
Ref_Window = window.open(theURL, 'Ref', settings); 
Ref_Window.focus(); 
Ref_Window.moveTo(X, Y); 
} 

function Refresh_Ref() { 
theURL = '../dir/foo.htm#' + parent.MAIN.frame_id; 
if (Ref_Window != null) { 
Ref_Window.updateRef(parent.MAIN.frame_id); 
} 

リファレンスウィンドウが開き、その参照内に親フレームからのフレーム参照を更新するためのコードが含まれています。

function updateRef(frame){ 
     window.location.hash=frame; 
} 

メインフレームコールには、更新を呼び出すsetTimeout関数が含まれています。

setTimeout("Refresh_Ref()",1000); 

これはすべて正しく動作し、parent.MAINのフレームがナビゲートされると、子フレームは適切なフレームに更新されます。私の問題は、リファレンスウィンドウからリンクされた複数の「パーソナライズされた」リファレンスがあることです(元のリファレンスの子と基本的に重複しています)。それらをfoo1.htm、foo2.htmなどと呼ぶことができます。 foo.htmファイルに戻るときでも、親のフレームに更新することができます。

元のOpen_Ref()関数はこの1つのファイルを呼び出すだけですが、複数の関数を追加しようとしましたが、動作していないようです。

任意のアイデアは、関数を実行する前に、どのfoo.htmファイルが開いているかを確認するブールステートメントを利用することができますか?

+0

申し訳ありませんが、私はそれを3回読みました。あなたが必要とするものを考え出すのは苦労します...私が理解していないのは、親データを使用するということです。新しい窓。それはあなたが少なくとも3つの窓を持っていることを意味しますか?さて、彼らはどうやって互いに正確に相互作用しますか?あなたが話している参考資料は何ですか?ページ? – Salketer

答えて

0

ご迷惑をおかけして申し訳ありません。だから、別の地元のスクリプタの助けを借りて、私たちは昨日この問題を理解することができました。あなたの質問に答えるには、親レッスンフレームをナビゲートするときに、この時点で2つのウィンドウ(親レッスンガイド)と子ウインドウ(参照ガイド)が開いているだけです。ページの上部。現在、問題は、現在のフレーム(window.replace)で更新する個別の(パーソナライズされた)参照ウィンドウを選択したときに発生しています。

私たちが持っていた問題は、bodyタグにonunloadメソッドがあり、あなたが子供から離れて移動するときに子供に焦点を当てていたことでした。そのonunloadタグを削除すると、親からフォーカスが維持されたので、Refresh_Ref()関数を実行し続けました。この関数はヌルウィンドウも探していたのでエラーが発生しました。そのため、参照ウィンドウを閉じたときにスクリプトにエラーが発生します。これを軽減するために、エラーをキャッチしてウィンドウを無効にするキャッチを作成しました。

心配なし!あなたのお手伝いをありがとう!

関連する問題