Javascript 对IE8用户隐藏所有内容的最佳方式是什么
所以我知道我实际上可以做Javascript 对IE8用户隐藏所有内容的最佳方式是什么,javascript,php,jquery,html,wordpress,Javascript,Php,Jquery,Html,Wordpress,所以我知道我实际上可以做display:none在我的所有帖子和其他内容上 问题是,您无论如何都可以看到源代码中的内容(可以肯定99.9999%的IE8用户甚至不知道源代码选项,但无论如何都想对源代码隐藏它…)。 我想做的是,除了在页面和源代码中显示类似的内容外,根本不获取任何代码: <!--[if lte IE 8]> <h2>You should update your browser version or choose another. Otherwise
display:none代码>在我的所有帖子和其他内容上
问题是,您无论如何都可以看到源代码中的内容(可以肯定99.9999%的IE8用户甚至不知道源代码选项,但无论如何都想对源代码隐藏它…)。
我想做的是,除了在页面和源代码中显示类似的内容外,根本不获取任何代码:
<!--[if lte IE 8]>
<h2>You should update your browser version or choose another. Otherwise the content will not be visible for Internet Explorer users or below.<h2>
<![endif]-->
(这是一个WordPress网站)简短的回答是肯定的,这是可以做到的
但对于您所描述的内容,我想说,您永远不应该担心人们在源代码中看到的内容,除非它是一个安全问题(在这种情况下,它应该对所有人隐藏,每种类型的技术都可能看到它)。演示层对访问者来说真的很重要,在这种情况下,display:none
就足够了。在主题文件夹的index.php中试试这个:
<?php
function iever($compare=false, $to=NULL){
if(!preg_match('/MSIE (.*?);/', $_SERVER['HTTP_USER_AGENT'], $m)
|| preg_match('#Opera#', $_SERVER['HTTP_USER_AGENT']))
return false === $compare ? false : NULL;
if(false !== $compare
&& in_array($compare, array('<', '>', '<=', '>=', '==', '!='))
&& in_array((int)$to, array(5,6,7,8,9,10))){
return eval('return ('.$m[1].$compare.$to.');');
}
else{
return (int)$m[1];
}
}
if(iever('<=', 8)){
<?php include (TEMPLATEPATH . '/shared/header.php' ); ?>
<!-- YOUR CONTENT -->
<?php
include (TEMPLATEPATH . '/shared/sidebar.php' );
include (TEMPLATEPATH . '/shared/footer.php' );
?>
} else {
echo("Oh noes. IE8 or below. Maybe");
}
}否则{
echo(“哦,不,IE8或以下,可能”);
}
如果这样做行得通,请在评论中告诉我,我会找出要挂接的操作(可能是init?),这样每个页面都可以完成
我从中获得了浏览器嗅探功能
您知道浏览器嗅探是不好的,对吧?警告:请小心使用上面Jack Zelig的答案,因为它正在对解析用户代理的函数进行评估,这将危及服务器的安全。可以通过在服务器上运行代码来利用用户可访问的eval()
:
if(preg_match('/MSIE\s(?P\d+)/i',@$_服务器['HTTP_用户代理'],$B)&$B['v']为什么要这样做?这需要在后端进行用户代理嗅探。有没有一个特定的原因让你不想通过源代码看到它?我认为在那个级别隐藏它的唯一原因是安全问题,但拥有IE8的用户不值得这样做。这似乎是一个相当愚蠢的要求。即使你提供了红色对于IE8用户来说只是一个空白页,他们所要做的就是下载Chrome或Firefox或更新版本的IE,然后他们就可以看到你的源代码了。这似乎是你试图在前门和侧门都敞开的情况下三重锁后门,这几乎是在浪费时间。也许更有效的方法是设计两个体验,一个用于支持所需功能的浏览器,另一个用于不支持所需功能的浏览器。这将允许您为旧浏览器和使用非传统浏览器(如屏幕阅读器和其他可访问设备)的浏览器提供体验。这是不安全的。用户可以更改其用户代理并请求执行服务器中的代码。请尽量避免使用eval
,至少不要使用由用户生成(或可能生成)的输入。
if (preg_match('/MSIE\s(?P<v>\d+)/i', @$_SERVER['HTTP_USER_AGENT'], $B) && $B['v'] <= 8) {
// Browsers IE 8 and below
// Don't render regular template files to these users
// e.g.: include 'update-your-browser.php'
} else {
// All other browsers
// Offer a version of the regular site
}