如何修改代码以使用IE< = 9

时间:2014-01-27 14:05:27

标签: jquery html internet-explorer

我有以下代码在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浏览器版本?

1 个答案:

答案 0 :(得分:2)

您的问题是IE8中不存在console.dir,即使打开了开发人员工具(关闭开发工具时,&lt; IE9中也不存在console对象)。将其更改为console.log,或将其删除。对于IE8代码,您可能希望保留console个调用,除非您在特定时刻需要它们,因为需要为它打开开发工具。

此外,您应该强烈考虑Spudley关于您拨打jQuery.noConflict()的电话的评论。这应该高于 $(document).ready调用,并将其更改为$j(document).ready,以便您的.ready()调用使用无冲突的jQuery变量。