當您將html元素設置爲具有display: none
時,該元素中的內容(例如圖片和Flash)將不會被Firefox加載,直到元素被設置爲顯示。 但Internet Explorer不像那樣。它從一開始就加載隱藏元素中的所有內容如何防止IE只使用HTML/CSS加載隱藏內容?
有沒有辦法阻止IE加載這樣的內容,而不使用JavaScript?
當您將html元素設置爲具有display: none
時,該元素中的內容(例如圖片和Flash)將不會被Firefox加載,直到元素被設置爲顯示。 但Internet Explorer不像那樣。它從一開始就加載隱藏元素中的所有內容如何防止IE只使用HTML/CSS加載隱藏內容?
有沒有辦法阻止IE加載這樣的內容,而不使用JavaScript?
由於我的問題認爲一個解決方案不使用JavaScript,我會回答我自己的問題,只是說目前還沒有辦法阻止IE加載隱藏內容的一部分的外部文件。
正如其他答案所示,有辦法避免這個問題,但不是爲了解決它。所以我的具體問題的答案是「不」。
不要插入任何內容到該元素?只有在用戶看到時才使用ajax加載它。
下面是ZippyV正在談論的一個例子(帶有一個轉折點)...將下面的代碼複製並粘貼到帶有HTML擴展名的新文件中並運行它!
<html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> </head> <body> <h1>This is the title</h1> <p>This is a paragraph</p> <div id="hidden-content"></div> <p>Another paragraph</p> <input type="button" id="add-content" value="Add Hidden Content" /> <script type="text/javascript"> $(document).ready(function() { $("#add-content").click( function() { var info = unescape('%53%68%68%68%2E%2E%2E%20%73%65%63%72%65%74%20%69%6E%66%6F%72%6D%61%74%69%6F%6E'); $("#hidden-content").html(info); } ); }); </script> </body> </html>
扭曲的是,要顯示的隱藏內容首先被轉義(使用Javascript escape()函數)。此外,您可以將JavaScript放在單獨的文件中!
display: none
應該隱藏元素內容從ie以及任何其他瀏覽器。
您是否關閉了所有標籤?
在Firefox上它按預期工作,但不在IE中 – GetFree 2009-12-20 18:01:21
function hide_show_content(el_ID){
//try <element hidden> property NOT IExplorer
try{el_ID.hidden = ((el_ID.hidden) ? false : true);}catch(_e){}
//try style=display:none for IExplorer
try{
if(el_ID.style.display==""){return;}
el_ID.style.display = ((el_ID.style.display=="none") ? "inherit" : "none");
}catch(_e){}
}
<span id="text#1" style="display:none;" hidden>TEXT TO BE HIDDEN or SHOWN laiter.</span>
<a href="" onClick="hide_show_content(document.getElementById('text#1')); return false;">Click to show TEXT</a>
問題說「僅HTML/CSS」,這意味着...沒有JavaScript。 – GetFree 2013-09-27 22:31:35
當你說,「它從一開始就加載隱藏元素中的所有內容」,你的意思是它正在顯示它們,或者只是在DOM中創建節點,儘管是隱藏的? – 2009-08-14 19:59:21
不,瀏覽器不顯示該內容,但IE確實會加載外部文件,如圖像和Flash動畫。 – GetFree 2009-08-14 20:04:56