2012-03-04 20 views
0

我正在使用jQuery創建一個iframe來創建「跨網站」網址。這在Firefox中正常工作,但IE將父頁面域添加到iframes src URL。使用jQuery創建的iframe在當前域名前面加上絕對URL

如果我創建的iframe(用jQuery)的一個例子是:

<iframe src="http://www.google.com"></iframe> 

,IE瀏覽器會嘗試加載的頁面是:

http://www._mysite_.com/http://www.google.com 

如果我靜態的HTML創建iframe一切正常。只有當我使用JS來加載錯誤的頁面。

我想我會明白,如果這是IE有內置的故意跨站點保護,但我想知道是否是這種情況,或者如果我失去了一些東西。

這是IE的默認行爲?如果有人有解決方法,將不勝感激。

編輯:

生成的代碼是:

<iframe id="myIframe" width="500" height="400" frameborder="0" src="http://www._website_.com/aaa/bbb/ccc"> 

我測試生成的代碼的靜態HTML和它在IE正常沒有工作。

編輯2:

這是我正在創建的iframe:

jQuery('.signUp').live('click', function() { 

    var url = 'http://www._website_.com'+$(this).attr('href'); 

    var thisModal='<div id="dialogRes" class="windowG"><iframe id="iframeG" frameborder="0" width="500" height="400" src="#"></iframe></div>'; 

    jQuery('body').append(thisModal); 

    jQuery('#iframeG').prop('src', url);   

    return false; 

}); 

在此行中:

jQuery('#iframeG').prop('src', url);   

我試圖attr()以及消除它一起,只需將url放入iframe的src標記中即可。似乎沒有任何工作。

+0

那麼,以防萬一,我們可以看到生成代碼? – Ryan 2012-03-04 04:00:48

+0

沒問題我會在上面添加它。 – 2012-03-04 04:03:42

+1

如何在jQuery中構建此iframe – Joseph 2012-03-04 04:06:25

回答

1

問題是,在IE中,href屬性總是作爲絕對URL返回。所以,如果你有

<a id="demo" href="bar/baz">...</a> 

然後您在您的網站http://mydomain.com/foo

jQuery('#demo').attr('href') == 'http://mydomain.com/foo/bar/baz'; 

兩個選項來解決此,其一是從href屬性解析出(可能)全域,或者使用一個不同的自定義屬性只是爲了保存目標地址/路徑(例如data-href)。