別の Web アプリケーションの iframe 内に Web アプリケーションがあります (両方とも ASP.NET MVC で行われます)。
C# を使用して、親 Web アプリケーションからクエリ文字列パラメーターを iframe 内のアプリケーションから読み取ることは可能ですか?
別の Web アプリケーションの iframe 内に Web アプリケーションがあります (両方とも ASP.NET MVC で行われます)。
C# を使用して、親 Web アプリケーションからクエリ文字列パラメーターを iframe 内のアプリケーションから読み取ることは可能ですか?
iframe 内のページから親ページから読み取りたいデータを iframe URL 自体に追加する必要があります。例えば:
<iframe id="yourid" src="yourpage.aspx?parentdata=whatever_data_to_be_captured">
</iframe>
ここで、iframe ページから src 値を解析してデータを取得する必要があります。
これはトリックです。私が知る限り、iframe から親ページのデータに直接アクセスする方法はないようです。
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
次に、内部アプリケーションのクエリ文字列であるかのように、クエリ文字列を読み取ります。
たとえば、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>