2

別の Web アプリケーションの iframe 内に Web アプリケーションがあります (両方とも ASP.NET MVC で行われます)。

C# を使用して、親 Web アプリケーションからクエリ文字列パラメーターを iframe 内のアプリケーションから読み取ることは可能ですか?

4

3 に答える 3

4

iframe 内のページから親ページから読み取りたいデータを iframe URL 自体に追加する必要があります。例えば:

<iframe id="yourid" src="yourpage.aspx?parentdata=whatever_data_to_be_captured">
</iframe>

ここで、iframe ページから src 値を解析してデータを取得する必要があります。

これはトリックです。私が知る限り、iframe から親ページのデータに直接アクセスする方法はないようです。

于 2013-04-10T06:45:36.560 に答える
1

window.parentは Parent への参照を提供する必要があります。また、直接の親を提供するwindow.topもあるため、アプリケーションが複数回ネストされている場合は、適切なプロパティを使用する必要があります。

そこから、要求された URL のさまざまなプロパティを持つwindow.parent.location(または) を実行できます。window.top.location

実際にクエリ文字列を読み取るには、それに関する投稿がここにあります。window.location を window.parent または window.top に置き換えるだけです:

ここで答えを参照してください:javascriptでクエリ文字列を取得する方法は? より詳細な回答はこちら: How can I get query string values in JavaScript?


コントローラー内:コントローラーにクエリ文字列が必要だと言ったので。上で説明したように、引き続きクエリ文字列を取得する必要があります。次に、それをsrc内部フレームの への呼び出しに入れて、コントローラーに渡します。

<iframe src=""></iframe>

srcそれはすべて、内部フレームの属性をいつどのように設定するかによって異なります。ある時点で何らかの方法で変更する必要があります。

外枠から次のことができます。

document.getElementById('myframe').src
 = "http://innerApplication/innerController/actionmethod/?" 
   + window.location.search;

または、フレーム自体の内部から、最初にクエリ文字列を取得してから、次のようにしてリダイレクト/リロードを実行しますwindow.[top/parent].location = the url + query string

次に、内部アプリケーションのクエリ文字列であるかのように、クエリ文字列を読み取ります。

于 2013-04-10T06:29:17.650 に答える
0

たとえば、iframe に送信する%26代わりに使用する必要があります。&

Link : 2.asp?ppp=/Payam.asp?sid=1%26PID=1&sa=12313 <br>

コードrequset.queryString("ppp")内:親にいると次のように表示されます:/Payam.asp?sid=1&PID=1

これを iframe のソースとして使用できます。2 つのパラメーターがあります。

<IFRAME name="My"  src='<%=ppp %>'></IFRAME> 
于 2014-05-28T09:30:56.447 に答える