導航:首頁 > IDC知識 > iframe不同域名跨域

iframe不同域名跨域

發布時間:2020-11-04 17:06:46

1、IFRAME 的JS跨域問題

其實你說的就是A和B是不同域名的,那麼A和B之間的數據交互(包括JS訪問)都是受限制的,這是瀏覽器的安全問題,是不允許的

2、如何解決iframe之間的跨域問題

建立隱藏iframe前頁面b.html,並前頁定義函數a伺服器端返數據重定向同域頁面(a.html)a.html寫段js執行函版數a提取a.html數據obj並數據作參數權傳給函數window.parent.a(obj);a.html包含b.html所window.parent.a(obj)其實調用b.html定義a函數硬跨域數據拿
希望採納懂追問

追答:

了解了嗎

3、如何解決iframe跨域子域名間跨域操作js的問題

建立隱藏iframe前頁面b.html,並前頁定義函數a伺服器端返數據重定向同域頁面(a.html)a.html寫段js執行函數a提取a.html數據obj並數據作參數傳給函數window.parent.a(obj);a.html包含b.html所window.parent.a(obj)其實調用b.html定義a函數硬跨域數據拿

4、iframe跨域傳遞cookie信息

沒搞明白你的問題描述。最好是地址欄地址能顯示A站的?這里就暈了。

5、jQuery(javascript)無法跨域,怎麼解決?是想獲取iframe的框架裡面的東西!!

這里主要就是通過JS來操作Window對象。Window 對象表示瀏覽器中打開的窗口,如果文檔包含框架(frame 或 iframe 標簽),瀏覽器會為 HTML 文檔創建一個 window 對象,並為每個框架創建一個額外的 window 對象。

 經過我在網上查資料,找到了JS操作iframe中HTML元素的方法。示例如下。
1function ShowExit() {
2//獲取iframe的window對象3var topWin = window.top.document.getElementById("topNav").contentWindow;
4//通過獲取到的window對象操作HTML元素,這和普通頁面一樣5 topWin.document.getElementById("exit").style.visibility = "visible";
6 }
說明:第一步,通過window.top.document.getElementById("topNav")方法獲取了頂部菜單頁面(topPage.htm)所在的iframe對象;第二步,通過上一步獲取到的iframe對象的contentWindow屬性得到了iframe中元素所在的window對象;第三步,通過上一步獲取到的window對象來操作iframe框架中的元素,這和操作不在iframe框架中的普通HTML元素是一樣的。
http://www.cnblogs.com/sunyunh/archive/2012/09/15/2687056.html

6、js如何操作iframe的跨域問題

A域名下的頁copy面index.htm中內嵌了一個iframe頁面,iframe內引用的是B域名的sub-index.htm頁面,但是為了避免出
現在index.htm頁面中出現滾動條,需要明確知道sub-index.htm頁面的高度和寬度,可是sub-index.htm的頁面內容是不可控的,可能會根據不同用戶頁面大小會不一樣;問題就是如何把sub-index.htm頁面的高度和寬度傳遞給index.htm頁面?

具體解決:
1、在index.htm頁面中聲明一個js函數process(height, width);用來實現設置頁面內iframe的高度和寬度;
2、
在sub-index.htm頁面中再內嵌一個隱藏的iframe,iframe的src指向A域名下的頁面ex.htm?height=xx&
width=yy,該頁面沒有任何內容,只是用來傳遞sub-index.htm頁面載入完之後的寬度和高度這兩個數據的,頁面內js拿到request
中的參數之後直接調用parent.parent.process(height, width);完成對父頁面寬度和高度的設置;
如圖:

7、JavaScript 怎麼跨域獲取 iframe 中的內容

要解釋這個問題,首先要解釋兩個技術點。

每個「窗口」都是一個JS Runtime,即JS的運行時。如果只有一個窗口,那麼就只有一個Runtime;如果一個窗口下面還有一個iframe,那麼就有兩個Runtime;以此類推。

Runtime之間互操作(或者通信)是有跨域限制的。也就是說,如果這個窗口本身是a.baidu.com域名下的頁面,那麼如果這個頁面下還有一個iframe,這個iframe中載入的頁面是b.baidu.com域名下的。那麼外層的JS。就不能跟這個iframe中的內容互操作(或者通信)。

因此外層Runtime中的JS想操作內層iframe中的內容,就必須要避免跨域限制。要麼內層iframe載入頁面的域名跟外層是一樣的。要麼就是需要在內層iframe載入的頁面中執行document.domain = 'baidu.com';從而設置跟外層的主域相同。

例如,當前頁面是a.baidu.com/test.html
<html>
<head>
</head>
<body>
<iframe id="iFrm1" src = ""margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: arial, 宋體, sans-serif, tahoma, 'Microsoft YaHei'; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-tap-highlight-color: rgba(26, 26, 26, 0.301961); -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">
iframe中載入的頁面內容如下:
<html>
<head>
</head>
<body>
<div id="innerDiv">恭喜操作到內部iframe中的元素了!!!</div>
<script>
document.domain = 'baidu.com';
</script>
</body>
</html>

在HTML5中新增了postMessage的API。可以方便窗口跟內部iframe之間進行通信,並且可以實現跨主域通信。但是有一些限制,1.老版本的瀏覽器一般不支持。2.父窗口只能向iframe中發送信息,iframe只能收消息,且父窗口不能直接操作iframe中的內容。3.父窗口發送的數據也是有限制的。只能發送基本數據類型或者plain object。

8、【HTML開發之iframe跨域】想問一下iframe如何跨域獲取這個iframe目前的url?

枚。近期在做開發的時候要用到iframe,想讓

9、如何用js操控iframe引用的跨域網站

<body>
<button id="btn">submit</button>
<iframe src="http://www.baidu.com" id="frame" frameborder="0"></iframe>
</body>
<script>
var btn=document.getElementById('btn');
var fr=document.getElementById('frame');
btn.addEventListener("click", function() {
     fr.contentWindow.location.href="http://www.2345.com";
});
</script>

給按鈕綁定個事件吧 然後執行回iframe.location.href="新聞頁地答址";

10、如何使用iframe實現跨域寫入cookie 並且兼容大部分瀏覽器

假如
在網站A下通過iframe或ajax調用B下的內容時,默認情況下IE會阻止B寫任何Cookie
//B里的被調用的頁面需要寫P3P頭,從而解除IE對寫Cookie的阻止
context.Response.AddHeader("P3P", "CP=CAO PSA OUR");
//A里通過ajax調用www.B.com里的內容時,是跨域訪問,需要使用jsonp,為配合其工作需要添加下面兩句,生成jsonp返回
context.Response.ContentType = "text/plain";
context.Response.Write(string.Format("{0}('OK')", context.Request["callback"]));
//jsonp調用進行跨域訪問
jQuery.ajax({
url: url,
type: 'GET',
data: data,
dataType: 'jsonp',
success: function (data) {
window.location.href = toURL;
}
});

與iframe不同域名跨域相關的知識