如果您使用像我這樣的報表管理器(2005版),您可以對ReportViewer控件做的事情不多。 (有嗎?)但有一個替代方案:
Phil的解決方案有效地禁用了由iframe的onload事件運行的代碼。在SSRS 2005,這是ID爲「ctl140TouchSession0」的iframe:
<iframe name="ctl140TouchSession0" id="ctl140TouchSession0" onload="if (frames['ctl140TouchSession0'].location != 'javascript:\'\'') frames['ctl140TouchSession0'].location.replace('javascript:\'\'');" src="javascript:''" style="position:absolute;width:0;height:0;border-width:0;visibility:hidden;">
你可以看到在onload事件有問題的代碼 - 渲染代碼加入「& &假」的條件禁用if語句。
下面的javascript通過在加載頁面後清空onload來完成相同的事情,停止循環。我不確定什麼onload事件實際上做,如果這樣將其取出:
// CUSTOMIZATIONS
addLoadEvent(customize);
//some browser-independent onload-adder I pulled from somewhere
function addLoadEvent(fn)
{
if (window.addEventListener)
window.addEventListener('load', fn, false);
else if (window.attachEvent)
window.attachEvent('onload', fn);
}
function customize()
{
//the actual fix.
//check first, we may be in a page without a reportviewer
if(document.getElementById('ctl140TouchSession0'))
document.getElementById('ctl140TouchSession0').onload = "";
}
注(在[MSSQL報告服務文件夾] \ ReportManager \ JS \ ReportingServices.js底部添加此)殺死其他一些功能。應該有一些方法來改變onload,就像Phil的解決方案一樣,或者是一個依賴於瀏覽器的修復程序,但是這個技巧並沒有在IE中遇到問題。
仍然沒有可接受的答案或解決方案,這顯然是在ReportViewer控件中的localmode造成這種情況。仍然無法找到責任部分:( – Phil 2009-12-06 14:55:11
也發生在Safari的Windows - 聞起來像一個WebKit的bug對我來說! – 2010-02-02 20:43:32
我使用它在鉻19和它的正常工作,但當我打開開發人員工具(Inspect元素)來檢查它的css類,然後它變得內存飢餓,網頁異常開始消耗數百MB直到1.5GB並掛起,我們必須使用任務管理器手動終止頁面 – MaxRecursion 2012-06-21 11:41:58