2009-08-14 55 views
1

當您將html元素設置爲具有display: none時,該元素中的內容(例如圖片和Flash)將不會被Firefox加載,直到元素被設置爲顯示。 但Internet Explorer不像那樣。它從一開始就加載隱藏元素中的所有內容如何防止IE只使用HTML/CSS加載隱藏內容?

有沒有辦法阻止IE加載這樣的內容,而不使用JavaScript?

+0

當你說,「它從一開始就加載隱藏元素中的所有內容」,你的意思是它正在顯示它們,或者只是在DOM中創建節點,儘管是隱藏的? – 2009-08-14 19:59:21

+0

不,瀏覽器不顯示該內容,但IE確實會加載外部文件,如圖像和Flash動畫。 – GetFree 2009-08-14 20:04:56

回答

3

由於我的問題認爲一個解決方案不使用JavaScript,我會回答我自己的問題,只是說目前還沒有辦法阻止IE加載隱藏內容的一部分的外部文件。

正如其他答案所示,有辦法避免這個問題,但不是爲了解決它。所以我的具體問題的答案是「不」。

+0

人們不給你一個直接的答案的原因是,從你的問題,這聽起來像你會使用JavaScript無論如何。那麼爲什麼你有這樣的要求,不應該使用JS? – mpen 2009-09-06 06:55:59

+3

我總是儘量避免使用JavaScript。由於javascript濫用(導致瀏覽器頻繁凍結),今天的許多網頁都是完全混亂的。有時你只是想知道是否有可能。如果不是,那麼你會找到解決方法。但你應該總是先嚐試最簡單的方法。 – GetFree 2009-09-06 07:33:47

3

不要插入任何內容到該元素?只有在用戶看到時才使用ajax加載它。

0

下面是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放在單獨的文件中!

1

其實如果你設置隱藏的可見性,即不會加載它。

+0

真的嗎?通過設置顯示:無IE下載圖像和Flash動畫,但通過設置可見性:隱藏它不會?我必須嘗試。 – GetFree 2009-12-20 18:00:41

+0

這是真的在IE9 +,它目前引起我的麻煩 – Liam 2013-07-23 13:18:39

-1

display: none應該隱藏元素內容從ie以及任何其他瀏覽器。

您是否關閉了所有標籤?

+0

在Firefox上它按預期工作,但不在IE中 – GetFree 2009-12-20 18:01:21

-1
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> 
+0

問題說「僅HTML/CSS」,這意味着...沒有JavaScript。 – GetFree 2013-09-27 22:31:35