Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对IE8用户隐藏所有内容的最佳方式是什么_Javascript_Php_Jquery_Html_Wordpress - Fatal编程技术网

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
}