我有一個父頁面,其中有一個iframe
,也有javascript
它將創建一個表單,將它附加到iframe,並在頁面加載時通過POST將其提交給外部URL。IE9不在ASP.NET應用程序中呈現iframe
來自外部URL的內容隨後加載到iframe中。這在所有瀏覽器中都可以正常工作,除了IE9。 我嘗試了'meta http-equiv="X-UA-Compatible" content="IE=8" '
的伎倆,這並沒有幫助。有時iframe呈現內容,有時不會刷新。每次(每次頁面加載)都會觸發的JavaScript顯示中的調試語句,Fiddler會顯示對外部URL的成功請求/響應。就好像IE9有選擇地決定是否更新DOM。
此外,我已經注意到,如果有任何形式的延遲與外部請求(需要幾秒鐘),然後iframe內容不會呈現。有沒有人經歷過這與IE9和有一個解決方案?
<iframe frameborder="0" height="600px" id="ifPage" runat="server" width="700px" />
<script type="text/javascript" language="javascript">
var alreadyrunflag = 0 //flag to indicate whether target function has already been run
if (document.addEventListener) {//FireFox or Sarafi
document.addEventListener("DOMContentLoaded", function() { alreadyrunflag = 1; GetExternalPageContent() }, false)
}
else if (document.all && !window.opera)
{//IE
addLoadEvent(GetExternalPageContent)
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
function GetExternalPageContent() {
var iframe = document.getElementsByTagName("iframe");
if (iframe != null) {
var uniqueString = "embFrame";
iframe[0].contentWindow.name = uniqueString;
var form = document.createElement("form");
form.target = uniqueString;
form.action = '<%=ExternalUrl %>';
form.method = "POST";
//parameter submitted to external URL to get appropriate content
var input = document.createElement("input");
input.type = "hidden";
input.name = "embParam";
input.value = "paramValue1";
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}
}
</script>
請將您的代碼放在這裏,請... –
https鏈接在IE下使用IFRAME卡住。你有他們嗎? –
是的,「ExternalUrl」被評估爲HTTPS站點 –