如何防止IE仅使用HTML/CSS加载隐藏内容?

如何防止IE仅使用HTML/CSS加载隐藏内容?,html,css,internet-explorer,Html,Css,Internet Explorer,当您将html元素设置为显示:无时,Firefox将不会加载该元素中的内容(例如图像和flash),直到该元素设置为显示。 但是Internet Explorer的行为不是这样的。它从一开始就加载隐藏元素中的所有内容 有没有办法防止IE在不使用javascript的情况下加载此类内容?不要在该元素中插入任何内容?只有当用户使其可见时,才使用ajax加载它。是否在该元素中插入任何内容?只有当用户使其可见时,才使用ajax加载它。下面是一个ZippyV正在谈论的示例(有点扭曲)。。。将下面的代码复制

当您将html元素设置为显示:无时,Firefox将不会加载该元素中的内容(例如图像和flash),直到该元素设置为显示。 但是Internet Explorer的行为不是这样的。它从一开始就加载隐藏元素中的所有内容


有没有办法防止IE在不使用javascript的情况下加载此类内容?

不要在该元素中插入任何内容?只有当用户使其可见时,才使用ajax加载它。

是否在该元素中插入任何内容?只有当用户使其可见时,才使用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> 这是标题 这是一段

另一段

$(文档).ready(函数(){ $(“#添加内容”)。单击( 函数(){ 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”); $(“#隐藏内容”).html(信息); } ); });
扭曲之处在于首先转义要显示的隐藏内容(使用Javascript escape()函数)。此外,您还可以将javascript放在单独的文件中

下面是一个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> 这是标题 这是一段

另一段

$(文档).ready(函数(){ $(“#添加内容”)。单击( 函数(){ 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”); $(“#隐藏内容”).html(信息); } ); });
扭曲之处在于首先转义要显示的隐藏内容(使用Javascript escape()函数)。此外,您还可以将javascript放在单独的文件中

由于我的问题被认为是一个不使用javascript的解决方案,我将回答我自己的问题,只是说目前为止没有办法阻止IE加载作为隐藏内容一部分的外部文件


正如其他答案所表明的那样,有办法避免问题,但不能解决问题。因此,我的具体问题的答案是“否”。

因为我的问题被认为是一个不使用javascript的解决方案,我将回答我自己的问题,只是说目前为止没有办法阻止IE加载作为隐藏内容一部分的外部文件


正如其他答案所表明的那样,有办法避免问题,但不能解决问题。因此,我的具体问题的答案是“否”。

实际上,如果您将可见性设置为隐藏,ie将不会加载它。

实际上,如果您将可见性设置为隐藏,ie将不会加载它。

显示:无
应该对ie以及任何其他浏览器隐藏元素内容


您是否关闭了所有标记?

display:none
应该对ie和任何其他浏览器隐藏元素内容

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>
您是否关闭了所有标签?

功能隐藏\u显示\u内容(el\u ID){
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>
//尝试属性而不是IExplorer 尝试{el_ID.hidden=((el_ID.hidden)?false:true);}catch({} //try style=display:IExplorer无 试一试{ if(el_ID.style.display==“”){return;} el_ID.style.display=((el_ID.style.display=“无”)?“继承”:“无”); }捕获(_e){} } 要隐藏或显示的文本。
函数隐藏显示内容(el\U ID){
//尝试属性而不是IExplorer
尝试{el_ID.hidden=((el_ID.hidden)?false:true);}catch({}
//try style=display:IExplorer无
试一试{
if(el_ID.style.display==“”){return;}
el_ID.style.display=((el_ID.style.display=“无”)?“继承”:“无”);
}捕获(_e){}
}
要隐藏或显示的文本。

当你说“它从一开始就加载隐藏元素中的所有内容”时,你的意思是显示它们还是只是在DOM中创建节点(尽管是隐藏的)?不,浏览器不显示该内容,但IE会加载图像和flash动画等外部文件。当你说,“它从一开始就加载隐藏元素中的所有内容,“你的意思是显示它们还是仅仅在DOM中创建节点(尽管是隐藏的)?不,浏览器不显示这些内容,但IE会加载图像和flash动画等外部文件。人们没有给你一个直接的答案的原因是,根据你的问题,听起来你无论如何都会使用javascript。那么,你为什么要求不使用JS呢?我总是尽量避免使用javascript。由于javascript滥用(这会导致频繁的浏览器冻结),今天的许多网页都是一团糟。有时候你只是想知道事情是否可能。如果不是,那么你可以找到一个解决办法。但是你应该首先尝试最简单的方法。人们没有给你一个直接的答案的原因是,从你的问题来看,听起来你无论如何都要使用javascript。那么,你为什么要求不使用JS呢?我总是尽量避免使用javascript。由于javascript滥用(这会导致频繁的浏览器冻结),今天的许多网页都是一团糟。有时候你只是想知道事情是否可能。如果不是,那么你可以找到一个解决办法。但是你应该先尝试最简单的方法。真的吗?通过设置显示:无IE下载图像和flash动画,但通过设置可见性:隐藏它不会吗?我得试试。这在IE9+中是真的,它现在真的让我很烦恼吗?通过设置显示:无IE下载图像和flash动画,但通过设置可见性:隐藏它不会吗?我必须试试。这在IE9+中是正确的,它目前正在导致