2015-11-11 110 views
1

嗨我有一個問題的代碼不能在IE8和IE9上工作,但與更高版本和其他瀏覽器,如鉻。該頁面不會僅在IE8和IE9上重新加載。面板不刷新IE 8和IE上

情景我正在做,當我在單選按鈕上選擇1個選項。面板應該重新加載。

這是我的java代碼。

ProfileBasePage.java

// Javascript used to resize the Modal page after hiding/showing components. 
Public static String POPUP_RELOAD_JS = 
"var iFrame = window.parent.document.getElementsByTagName('iframe')[0];" 
+ "(iframe.onload)();"; 

/** Calls the Javascript code to reload the modal panel only when the popup parameter is set to true.*/ 
protected void reloadPopupiFrame(AjaxRequestTarget target) 
{ 

//POPUP_PARAMETER="popup" 

    String popup = getRequest().getRequestParameters().getParameterValue(ProfileBasePage.POPUP_PARAM_KEY).toString(); 

//TRUESTRING = "true" 
    //append the javascript used to reload the modal iFrame. 
    if(ProfileBasePage.TRUESTRING.equalsIgnoreCase(popup)) 
{ 
target.appendJavaScript(POPUP_RELOAD_JS); 
} 
} 
+0

是瀏覽器報告JavaScript錯誤?如果是這樣,請發佈。 – Gimby

+0

沒有它沒有。該代碼在下面的IE 9中不起作用。但它適用於其他瀏覽器或邊緣 – Happy

+0

您正在使用哪個導葉版本? ajax請求是否被實際執行?該響應是否包含您的JavaScript?代碼並沒有真正告訴我們多少幫助你... –

回答

0

(iframe.onload)()看起來腥。也許較早的IE版本不支持它。 更好地使用正確的函數調用。即您的iframe應如下所示:<iframe onload="myOnLoadOrResizeHandler()"...>然後由Wicket執行的JS代碼應爲:target.appendJavaScript("myOnLoadOrResizeHandler();")

+0

這個SO問題似乎表明它不會在IE8中工作,但應該在IE9中工作:http://stackoverflow.com/questions/12910534/why-doesnt -ie8柄 - iframe的onload事件事件 – Gimby

1

如果你使用的檢票ModalWindow類,你可以用檢票自己的JavaScript命令調整它的大小:

target.appendJavaScript("window.parent.Wicket.Window.current.autoSizeWindow();");