4

我正在开发一个不适用于 Internet Explorer 的 Web 应用程序(Web 套接字、json、安全问题)。

现在,在我的应用程序使用 IE 之前:

如何拒绝来自 Internet Explorer 客户端的连接?

谢谢

4

2 回答 2

4

创建一个中间件来解析request.META['HTTP_USER_AGENT']. 如果您发现用户使用 IE,请给他一个好消息(例如通知或小警告框),告诉他您的网站没有针对他的浏览器进行优化 :)

一些代码示例:Django方式

middleware.py (有关更多信息,请参阅文档)

class RequestMiddleware():
    def process_request(self, request):
        if request.META.has_key('HTTP_USER_AGENT'):
            user_agent = request.META['HTTP_USER_AGENT'].lower()
            if 'trident' in user_agent or 'msie' in user_agent:
                 request.is_IE = True
            else:
                 request.is_IE = False

           # or shortest way:
           request.is_IE = ('trident' in user_agent) or ('msie' in user_agent)

您的基本模板:

{% if request.is_IE %}<div class="alert">Watch out! You're using IE, but unfortunately, this website need HTML5 features...</div>{% endif %}

然后将其添加到您的中间件列表中。

优化:纯HTML方式

如果您只想像我所做的那样显示一条消息,您可以使用 HTML 条件注释:

<!--[if IE]> <div class="alert">...</div><![endif]-->
于 2013-08-22T20:20:59.687 回答
4

还有另一种方法!只需使用设置变量DISALLOWED_USER_AGENTS,并确保在您的站点上安装了CommonMiddleware 。

例如

import re
DISALLOWED_USER_AGENTS = (re.compile(r'msie\s*[2-7]', re.IGNORECASE), )

干杯!

于 2014-05-16T04:18:06.737 回答