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