UPDATE:我在一年前發佈了這個問題,有趣的是,我在一個主要在IE7中工作的項目有同樣的問題。基本上我在WinXP SP3虛擬PC中安裝了sIEve,並且下面的代碼會發生內存泄漏。基本上,我想我在下面提供的示例代碼沒有代碼泄漏,任何幫助,將不勝感激如何解決這個window.open內存泄漏IE?
我最近在看此內存泄漏工具篩:http://home.orange.nl/jsrosman/
所以我決定測試一下該工具通過創建主頁面將打開一個彈出窗口。 我開始創建3個頁面:index.html,page1.html和page2.html,index.html頁面將打開一個鏈接到page1.html的子窗口(彈出窗口)。第1頁將鏈接到page2.html一個錨標記,而第2頁將有一個鏈接回page1.html
問題
所以在我進入index.html頁面的工具,彈出窗口打開到page1.html,然後我點擊了page2鏈接,沒有檢測到泄漏。
當我在第2頁時,我點擊鏈接返回page1,這就是工具聲稱存在鏈接的地方。泄漏似乎發生在index.html頁面上,我不知道爲什麼它會這樣做。更關心的是,我可以看到該工具檢測到的元素甚至不在我的頁面上。
有沒有人有任何使用此工具的經驗或知道這是否真的是內存泄漏? 任何樣品展示如何實現我沒有內存泄漏的事情?
INDEX.HTML
<script type="text/javascript">
MYLEAK = function() {
var childWindow = null;
function showWindow() {
childWindow = window.open("page1.html", "myWindow");
return false;
}
return {
init: function() {
$("#window-link").bind("click", showWindow);
}
}
}();
</script>
</head>
<body>
<a id="window-link" href="#" on>Open Window</a>
<script type="text/javascript">
$(document).ready(function() {
MYLEAK.init();
});
</script>
</body>
</html>
PAGE1.HTML
<html>
<body>
<h1>Page 1</h1>
<a href="page2.html">Page2</a>
</body>
</html>
PAGE2.HTML
<html>
<body>
<h1>Page 2</h1>
<a href="page1.html">Page1</a>
</body>
</html>
欣賞你的努力。
不使用window.open,但讓用戶決定他是否想要一個新的窗口/選項卡或沒有(鼠標中鍵!)將是一個好主意:p – ThiefMaster 2010-05-19 08:38:51
你的意思是一個鏈接?我甚至嘗試過使用target =「_ blank」並且有類似的問題。你認爲通過在新標籤中打開它可能不會導致此類泄漏?也不是由用戶設置決定如何實際打開鏈接? – DotnetShadow 2010-05-19 09:00:30
試過target =「myWindow」? – Val 2010-05-19 10:43:48