【问题标题】:Error in my jsp file: TypeError: $.browser is undefined我的 jsp 文件中的错误:TypeError: $.browser is undefined
【发布时间】:2015-10-26 05:36:31
【问题描述】:

我在我的 jsp 页面上收到此错误。 在这个网站上搜索了一些可能的答案后,我决定包含以下脚本标签:

<script src="http://code.jquery.com/jquery-migrate-1.0.0.js"></script>

但是,我现在在页面加载时收到此警告:

JQMIGRATE:jQuery 与 Quirks 模式不兼容

我再次收到浏览器未定义错误。

这些是我包含的以下 jQuery 脚本标签:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" ></script>
<script src="http://code.jquery.com/jquery-migrate-1.0.0.js"></script>
<link rel="stylesheet" href="<%=request.getContextPath()%>/js/page/jquery-ui.css">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/dealerActions/jquery.validationEngine-en.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

现在,我的 jsp 页面确实是这样开始的:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="com.bluestar.core.logger.ApplicationLogger"%>
<%@page session="true" contentType="text/html" pageEncoding="ISO-8859-1" import="java.util.*,javax.portlet.*" %>

由于我在开始时包含了 doctype,因此我不应该收到“Quirks mode”警告。我应该怎么做才能避免这个错误?

【问题讨论】:

    标签: javascript jquery html jsp jsp-tags


    【解决方案1】:

    如果您将以下 DOCTYPE 放入您的网页中:

    现代浏览器(Android 1+、Chrome 1+、IE 6+、iOS 1+、Firefox 1+、Netscape 6+、Opera 6+、Safari 1+)会以以下方式解释这一点:

    因为有一个正确编写的 DOCTYPE,这会触发标准模式。 这是一个 HTML 4.01 过渡文档 因为它处于标准模式,大多数浏览器将呈现符合(或大部分符合)HTML 4.01 过渡的内容 如果你把这个 DOCTYPE 放在你的文档中:

    这告诉现代浏览器您希望严格遵守 DTD 来显示 HTML 4.01 页面。这些浏览器将进入“严格”或“标准”模式并按照标准呈现页面。 (因此,对于本文档,浏览器可能会完全忽略诸如 FONT 元素的标签,因为在 HTML 4.01 Strict 中已弃用 FONT 元素。)

    因此您只需将文档类型更改为 HTML5 标准。

    顺便说一句,jquery-ui.min.js 和 jquery-ui.js 是相同的,除了它们的大小和布局,所以请去掉这一行:

    【讨论】:

    • +1谢谢!这有助于解决 Quirks 模式错误!但是,尽管使用了 migrate,浏览器未定义错误仍然存​​在。
    【解决方案2】:

    根据http://jquery.com/upgrade-guide/1.9/#jquery-browser-removed

    jQuery.browser() 已移除

    jQuery.browser() 方法自 jQuery 1.3 以来已被弃用,并在 1.9 中被删除。如果需要,它可以作为jQuery Migrate plugin 的一部分提供。我们建议将特征检测与 Modernizr 等库一起使用。

    如果你还需要这个功能,你可以从:https://github.com/gabceb/jquery-browser-plugin获取一个js文件 并将 js 链接到您的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-25
      • 2014-07-13
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2015-05-04
      相关资源
      最近更新 更多