我有以下代码,在Chrome和IE 10和FF中工作正常,但在IE 8中不起作用,很可能在IE 9中也不起作用:
<script type = "text/javascript">
$(document).ready(function () {
var $j = jQuery.noConflict();
console.dir($j("#Button1"));
$j("#Button1").click(function () {
var textbox = document.getElementById("TextBox1").value;
if (textbox.length > 0) {
//alert("Search query is not empty and redirecting...");
window.location.href = "http://www.mypagep.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
}
else {
alert("Search query is empty");
document.getElementById("TextBox1").focus();
}
});
$j('#TextBox1').keyup(function () {
var $th = $j(this);
$th.val($th.val().replace(/[^a-zA-Z0-9 ]/g, ''));
});
$j('#TextBox1').keypress(function (e) {
var textbox = document.getElementById("TextBox1").value;
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
if (textbox.length > 0) {
e.preventDefault();
window.location.href = "http://www.mypage.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
}
else {
e.preventDefault();
alert("Search query is empty");
document.getElementById("TextBox1").focus();
}
}
});
});
</script>
我正在为库链接使用以下内容:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
我正在使用似乎与 JQuery 冲突的 CMS,这就是为什么我被迫使用以下行:var $j = jQuery.noConflict();
并使用$j
而不是普通的$
符号
功能性: 如果用户在文本框中输入任何无效字符,则将删除这些字符。如果用户在文本框中按 Enter 并且其中有字符,则用户将被定向到搜索页面,否则它们将显示一个警告框。搜索按钮也是如此,如果用户按下但文本框中没有文本,则用户将显示一个警告框,并且不会发生任何事情,但如果文本框内有文本,用户将被定向到搜索页面。
我们被迫使用IE8,因为其他一些软件,所以我试图让它在旧版本的IE中工作:/
如何修改代码以使其适用于不是最新的 IE 浏览器版本?
您的问题是 IE8 中不存在console.dir
,即使开发人员工具处于打开状态(当开发工具关闭时,console
对象在 IE9 中不存在<)。将其更改为console.log
,或删除它。对于 IE8 代码,您可能希望将console
调用排除在其中,除非您在特定时刻需要它们,因为需要为其打开开发工具。
此外,您应该强烈考虑 Spudley 关于您拨打电话的评论jQuery.noConflict()
.这应该高于$(document).ready
调用,并将其更改为$j(document).ready
,以便您的.ready()
调用使用无冲突 jQuery 变量。