2011-01-21 12 views
2

私たちにはウェブサイトがあり、そのページの1つにフレームセットが含まれています(別のウェブサイトからデータを取得する必要があります)。問題は、フレームセットを含むページにアクセスすると、他のリンクをクリックしてもURLが変更されなくなることです。フレームセットとのページのリンクを表示し続けます。たとえば、フレームセットのページのURLは次のとおりです。フレームセットは、ページを移動するときにURLが変更されないようにします。これを回避する方法はありますか?

http://www.ourwebsite.com/profile.php

通常、あなたがウェブサイト上の他のリンクをクリックしたとき、それはそのページが持っているものは何でもURL /ページ名に変更されます。しかし、ここでは、フレームセットページに着陸すると、URLは何らかの形でマスクされ、サイト内のどこにでも移動してhttp://www.ourwebsite.com/profile.phpと表示されます。

これを回避する方法はありますか?

答えて

1

EDIT:あなたは別のサイトからのフレームを表示したいとあなたは、他のサイトには、そのHTMLを発する方法を制御することができる場合

、その後、取得するには、以下の私のオリジナルの答えの指示に従ってください。 target="_top"でハイパーリンクを生成するフレーム。

しかし、あなたがコントロールできないサイトをフレーミングしている場合は、おそらくフレームを使用していない可能性があります。代わりに、別のアプローチを使用してデータを取得する必要があります。たとえば、サーバーアプリケーションでfile_get_contents()または別のPHP HTTPクライアントライブラリを使用してリモートサイトからデータを取得し、自分のサイト内でデータを(フレームなしで)放出することができます。もちろん、リモートサイトを所有していない場合は、この方法でデータを再利用できることを確認する必要があります。 YOUは、FRAME(S)の内側SITE(S)をコントロールしている場合

OLD ANSWER(USE THIS:

これを回避するための一般的な方法は、新しいフレームセットのURLですべてのフレーム内のURLを指すようです、 。ハイパーリンク上target="_top"、一般的にロードするためにフレームを何フレームセットページを伝えるために、クエリ文字列パラメータを含む

たとえばで、二つのフレームでframset /frameset.phpを想像は当初/frame1.php/frame2.phpで指摘フレーム1の内部リンクは次のようになります。

<a href="/frameset.php?frame1=link_url&frame2=frame2_current_url" target="_top"> 

ここでlink_urlは、そのフレームに読み込むコンテンツページで、frame2_current_urlは、現在フレーム2に読み込まれているURLです(ページが読み込まれたときに変更したくないためです)。

親フレームセットのコードを変更してクエリ文字列パラメータを探し、それに応じて各フレームのURLを設定する必要があります。クエリ文字列パラメータが指定されていない場合は、各フレームのデフォルトURLを使用します。クエリ文字列のパラメータで、すべてのURLをURLエンコードするようにしてください。

自分のサイトのリンクを指すリンクにのみ、このマジックを実行する必要があることに注意してください。

<a href="http://www.externalsite.com/" target="_top"> 

警告:このアプローチは、あなたが非常にタイトなコントロールを超える持っているサイトには本当にのみ適していますが、このwtihハイパーリンクを終わると思いますので、外部サイトへのリンクについては、あなたは、まったくのURLを書き換えるべきではありません生成されたすべてのURL。実際のWebサイトは、特に開発者以外の開発者にコンテンツを提供している場合や、クライアント側のスクリプトを使用してナビゲーションを行っている場合には、制御が緩慢な傾向があります。

+0

ありがとうございました。それは問題を解決しました。 – catandmouse

1

<a href="foo" target="_top">

関連する問題