以下代碼只是為演示該方法具體是如何操作的,實際的意義並不大。
其實這個方法還可以解決很多方面的跨域操作,以下兩點為我工作中遇到的情況!
比如A系統中打開B系統頁面的時候,獲取B系統頁面高度,A系統中可以動態設置窗口的高度
還有A系統中打開B系統頁面的時候,B系統頁面進行一系列操作,操作成功后需關閉A系統窗口,就可以在操作成功后再在B系統中嵌入A系統的blank.html頁面,blank.html頁面打開的時候,動態關閉A系統的窗口!
下面為大家講下是如何實現該方法的
1.在A系統下添加名稱為blank.html的空白頁面,注意不需要任何內容,因為只需要在里面添加js代碼即可!
2.然后我們在A系統的Home/Index頁面下嵌入ifrme路徑指向B系統的Home/Index頁面,並且加上自定義參數url,url就為剛才添加的A系統的空白頁面,iframe記得添加name和id屬性,方便接下來的操作!
3.這里會請求B系統的HomeController控制器下的Index動作,接收到傳遞過來的url參數,通過ViewBag.BlankUrl=url返回到頁面,頁面加載的時候動態獲取頁面的高度,然后在頁面的div元素中再次添加name=iframeBlank的iframe元素並且地址指向ViewBag.BlankUrl也就是A系統的空白頁面,並通過"#"字符分割需要的參數傳遞過去,符號可以自定義!
4.A系統通過Iframe嵌入B系統Home/Index頁面的同時時,B系統又同時在頁面嵌入A系統的blank.html頁面以及B系統傳遞回來的數據,由於iframe的特殊屬性需通過以下方式獲取返回的數據 var data= window.parent.parent.frames["myframe"].frames["iframeBlank"].location.hash