我正在开发一个 Web 应用程序,该应用程序与 Internet Explorer 不兼容(Web Socket、JSON、安全问题)。在我的应用程序与 IE 兼容之前,我想知道如何拒绝来自 IE 客户端的连接。谢谢!
还有另一种方法!只需使用设置变量DISALLOWED_USER_AGENTS,并确保在您的网站上安装了CommonMiddleware中间件。
例如:
import re
DISALLOWED_USER_AGENTS = (re.compile(r'msie\s*[2-7]', re.IGNORECASE), )
干杯!
request.META['HTTP_USER_AGENT']
。如果发现用户正在使用IE浏览器,则给他一个友好的提示信息(例如通知或小警报框),告诉他你的网站没有为他的浏览器进行优化 :)。
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条件注释:
<!--[if IE]> <div class="alert">...</div><![endif]-->
MISE
而不是Trident
吗? - psychok7
<!--[if IE]> <!-- <![endif]-->
(您的页面内容)<!--[if IE]> --> <![endif]-->
,如果浏览器是IE,则应该有效地注释掉整个代码。但我不建议如此直接。 - Ariane