类型错误: $. 浏览器未定义

我使用下拉图像组合框来创建下拉选项。 当我在电脑上运行这段代码时,一切都很好。但是当我在 GoDaddy 服务器上运行它的时候,下拉菜单就被禁用了。

它不能在任何浏览器上工作。 Firebug 显示错误如下:

TypeError: $.browser is undefined


echo <<<_START
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>profile</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="HAPedit 3.1">
<link rel="stylesheet" href="profile.css" type="text/css">
<link rel="stylesheet" type="text/css" href="dd.css" />
<link rel="stylesheet" href="javascript/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script>
<script type="text/javascript" src="jQuery.js"></script>
<script src="javascript/jquery-ui.js"></script>
<script type="text/javascript" src="javascript/drop.js"></script>
<script src="jquery.dd.min.js"></script>
<script type="text/javascript" src="jquery.blockUI3.js"></script>
<script type="text/javascript" src="javascript/req.js"></script>
<link rel="stylesheet" href="css/body.css" />
<script>
$(function() {
$( "#datepicker" ).datepicker({dateFormat: 'dd-mm-yy', minDate: 0, maxDate: "+0M +5D"
});
});
</script>
<script type="text/javascript">
<!--
function otherSelect() {
var other = document.getElementById("otherBox");
if    (document.getElementById("form3").place.options[document.getElementById("form3").place.selectedIndex].value == "other") {
other.style.visibility = "visible";
}
else {
other.style.visibility = "hidden";
}
}
//-->
</script>
</head>


<body id="body">


<div id="container">
<div class="header">
<a href="profile.php" class="logo">
<img title="Title" alt="Alter" src="images/logo.png" border="0" height="60px"  width="200px">
</a>
<a style="text-decoration:none; margin-top:15px; font-family:Bookman Old Style;  font-size:12px; color:#FFFFFF; font-weight:bold;" href="logout.php?id='$session_id'"  class="req">
Logout
</a>
<a href="notification.php?email='$encrypted_string'" class="req1">
<img border="0" title="Notifications" alt="Notifications" src="images/notification.png" height="60px" width="60px"><div class="text1">$numbr</div>
</a>
<a href="request.php?email='$encrypted_string'" class="req2">
<img border="0" title="requests" alt="Requests" src="images/request.png" height="60px" width="60px"><div class="text">$req</div>
</a>
</div>


<div id="navigation">
<div id="picture"><img src="$img">
<h1 id="display" style="margin-left:30px;">$name</h1><hr>
<table style="background-color:#81F781;font-family:Chaparral Pro,corbel; font-   size:17px; color:#1C1C1C; width:100%;" border="1" cellpadding="25">
<tr><th>Requests($n)</th></tr></table>
</div>
</div></div>
<div style="margin-top: 90px;" id="conte">


_START;


echo <<<_START
</div>
<div id="accept" style="display:none">
<form method="post" id="form3" action="cnfrm.php">
<br><table border="0" style="width:100%;" cellspacing="4" cellpadding="4"><tr>    <td  style="font-family:Chaparral Pro,corbel; font-size:17px; color:#1C1C1C;">Meeting Date:   <input type="text" id="datepicker" name="date"/></td>
<td style="font-family:Chaparral Pro,corbel; font-size:17px; color:#1C1C1C;">@ about<input  type="text" id="time" size="3">AM<input type="radio" name="time2" id="time2" value="am"> |   PM<input type="radio" name="time2" id="time2" value="pm"></td></tr>
_START;


echo <<<H
<tr><td valign="top" rowspan="2">
<select id="place" name="place" style="width:300px;" onchange="otherSelect()">
<option value="" data-description="Choose your meeting place"  selected="selected">Meet me @</option>
<option value="LC" data-image="image/msdropdown/icons/meet.png" data-description="Limbdi Corner">L.C</option>
<option value="VT" data-image="image/msdropdown/icons/meet.png" data-description="Vishwanath temple">V.T</option>
<option value="H.G" data-image="image/msdropdown/icons/meet.png" data-description="Hyderabaad Gate">H.G</option>
<option value="D.G Corner" data-image="image/msdropdown/icons/meet.png" data-description="Dhanrajgiri Corner">D.G corner</option>
<option value="Library" data-image="image/msdropdown/icons/meet.png" data-description="IIT Library">Library</option>
<option value="other" data-image="image/msdropdown/icons/meet.png" data-description="Add your own...">Other place</option>
</select> </td></tr>
H;

这个问题已经解决了: 下拉菜单更新并下载最新的文件。

162932 次浏览

$.browser已经从 JQuery 1.9中删除。您可以改用 现代化项目

Http://jquery.com/upgrade-guide/1.9/#jquery-browser-removed

更新以支援 IE10及 IE11(TRIDENT 版本)

要完成@daniel. mura 的回答,这里有一个 支持 IE11和 + 的版本

var matched, browser;


jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();


var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie)[\s?]([\w.]+)/.exec( ua ) ||
/(trident)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];


return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};


matched = jQuery.uaMatch( navigator.userAgent );
//IE 11+ fix (Trident)
matched.browser = matched.browser == 'trident' ? 'msie' : matched.browser;
browser = {};


if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}


// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}


jQuery.browser = browser;
// log removed - adds an extra dependency
//log(jQuery.browser)

$() . live (function (){}) ; jQuery 1.9.0 -$浏览器中没有定义 jQuery

这听起来像是在 Godaddy 中使用了不同版本的 jquery 1.9,所以要么更改代码,要么包含迁移插件 http://code.jquery.com/jquery-migrate-1.0.0.js

在某个地方,代码——要么是您的代码,要么是 jQuery 插件——正在调用 $.browser以获取当前的浏览器类型。

然而,早年有 不推荐使用 $.browser函数。从那以后,一些 bug 被归档,但是由于它已经被弃用,jQuery 团队决定不修复它们。我决定完全不依赖这个函数。

我在你的代码中没有看到任何关于 $.browser的引用,所以问题可能出在你的某个插件上。要找到它,请查看您使用 <script>标记引用的每个插件的源代码。

至于如何解决这个问题: 这取决于具体情况。例如,也许有一个问题插件的更新版本。或者也许你可以使用另一个插件做类似的事情,但不依赖于 $.browser

只要把 $. 浏览器代码放到 js 中

var matched, browser;


jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();


var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];


return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};


matched = jQuery.uaMatch( navigator.userAgent );
browser = {};


if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}


// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}


jQuery.browser = browser;

只要包括这个脚本

Http://code.jquery.com/jquery-migrate-1.0.0.js

在包含 jquery javascript 文件之后。

我在代码中放置了以下 html,这样就清除了 $. 浏览器错误

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

希望这能帮到你

我确实用下面指定的 jQuery 迁移链接解决了这个问题:

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

我确实用 Github 的 jquery 解决了这个问题

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

请参考此链接了解更多信息。 Https://github.com/studio-42/elfinder/issues/469

将 jquery 文件替换为以下内容:

< 脚本 src =”// code.jquery.com/jquery-1.11.3.min.js"></script> ; < script src =”// code.jquery.com/jquery-migrate-1.2.1.min.js"></script> ;

在 WordPress 8.5.1中,我安装了这个插件“ 启用 jQuery 迁移帮助器”。

而且没有任何问题。

由于这个主题是大多数人偶然发现的第一个入口。我也想分享我的解决方案。 您可以按照以下方式在 function. php 文件中对脚本进行排队。

add_action( 'wp_enqueue_scripts', 'patch_jquery_migrate' );
function patch_jquery_migrate() {
wp_deregister_script('jquery-migrate');
wp_register_script('jquery-migrate', ("http://code.jquery.com/jquery-migrate-1.0.0.js"), false, null);
wp_enqueue_script( 'jquery-migrate' );
}