我有一個在另一個Web應用程序的iframe中的Web應用程序(兩者都在ASP.NET MVC中完成)。從內部iframe讀取查詢字符串參數
是否有可能從iframe中的應用程序讀取從父Web應用程序使用C#查詢字符串參數?
我有一個在另一個Web應用程序的iframe中的Web應用程序(兩者都在ASP.NET MVC中完成)。從內部iframe讀取查詢字符串參數
是否有可能從iframe中的應用程序讀取從父Web應用程序使用C#查詢字符串參數?
您必須將任何想要從父頁面讀取的數據從iframe中的頁面追加到iframe url本身。 例如:
<iframe id="yourid" src="yourpage.aspx?parentdata=whatever_data_to_be_captured">
</iframe>
現在,你必須在自己的iframe頁面解析src值捕獲數據。
這是一個竅門,據我所知似乎沒有直接的方式來訪問iframe的父頁面數據。
window.parent應該給你一個家長的參考。還有一個window.top它給出了直接的父母,所以如果你的應用程序嵌套不止一次,你應該使用正確的屬性。
從那裏你可以做window.parent.location
(或window.top.location
),它具有所請求的URL的各種屬性。
要真正閱讀查詢字符串有關於這裏的帖子。你只需要window.parent或window.top更換了window.location:
這裏看到答案:How to get the query string by 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
然後做一個重定向/重裝您將讀取查詢字符串,就好像它是內部應用程序的查詢字符串一樣。
您應該使用%26
,而不是&
發送給IFRAME,例如:
Link : 2.asp?ppp=/Payam.asp?sid=1%26PID=1&sa=12313 <br>
在代碼:當我requset.queryString("ppp")
父它表明:/Payam.asp?sid=1&PID=1
您可以使用此作爲源您的iframe,它有兩個參數:
<IFRAME name="My" src='<%=ppp %>'></IFRAME>
請在每個涉及的頁面的域(url)上添加信息 - 感覺就像您可能是tryi ng使用錯誤的方法解決相同的原始策略限制... – 2013-04-10 07:00:46