簡體   English   中英

對象預期IE8 JS / JQuery問題IE8

[英]Object Expected IE8 JS/JQuery issue IE8

這是我在這里的第一篇文章,雖然我瀏覽了很多答案。 我遇到一個問題,IE8將繼續拋出“對象預期”錯誤。 我使用IE8的開發人員工具,它指向“mymh.js”文件

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="/MyMHome/javascript/mymh.js"></script> 

mymh.js文件只有以下代碼

    $(document).ready(function() {          

        $('#hNumber').focus();

        $('#ddlDir').change(function () {

            var selVal = $('#ddlDir').val();

             if (selVal == 'N' || selVal == 'S' || selVal == 'E' || selVal == 'W'){

             $.getJSON('/MyMHome/DimeServlet?strDir='+$('#ddlDir option:selected').val(), function(data) {

                    $('#ddlSt')
                    .find('option')
                    .remove()
                    .end()

                $.each(data, function(i,field){
                    var name = field;
                    $('#ddlSt')

                    .append('<option value= ' + '"' + name + '"' + '>' + name + '</option>');   
                    });
                });

                $('#ddlSt').focus();    
             }else{ 

                    $('#ddlSt')
                    .find('option')
                    .remove()
                    .end()
                    .append('<OPTION selected value="">Choose a direction first</OPTION>');

                }                   
        })
        .trigger('change');             

        $('#reset').click(function(){
             $('#ddlSt')
            .find('option')
            .remove()
            .end()
            .append('<OPTION selected value="">Choose a direction first</OPTION>'); 
             $('#hNumber').focus();                
        });

        $('#hNumber').bind('keyup', function() {
            if($('#hNumber').val().length == 5){
                    $('#ddlDir').focus();
            }
        });             

        $('#submitQuery').click(function(){
            var houseNumber = $('#hNumber').val();
            if(houseNumber.replace(/\s+/g, '').length == 0){
                alert('Please enter a house number.');
                $('#hNumber').focus();  
                return false;
            }else if( (!$.isNumeric(houseNumber)) || houseNumber.indexOf('-') > -1 || houseNumber.indexOf('.') > -1){
                alert('Please enter numbers only. You will be prompted later, if the address requires a suffix.');
                $('#hNumber').focus();  
                return false;
            }else if(houseNumber < 100 || houseNumber > 12999){
                alert('Please enter a house number between 100 and 12999');
                $('#hNumber').focus();
                return false;
            }else if($('#ddlDir option:selected').val() == 'none'){
                alert('Please select a street direction.');
                $('#ddlDir').focus();
                return false;
            }       
        });         

        $('form').keypress(function(e) {
              if (e.keyCode == '13') {
                 e.preventDefault();
                 if($('#ddlSt').is(":focus")){
                     $('#submitQuery').trigger('click');
                 }
                 else{
                     return false;
                 }
               }
        });
});

錯誤指向<script ... mymh.js></script>但在調試器中它指向$document.ready(function() {

任何人都知道為什么IE8會繼續拋出這個錯誤?

嘗試在第16行的末尾放置分號

$('#ddlSt')
.find('option')
.remove()
.end()

$.each(data, function(i,field){

$('#ddlSt')
.find('option')
.remove()
.end();

$.each(data, function(i,field){
$(document).ready(function() { });  

由於以下原因,此語句可能會拋出Object Expected錯誤:

首先,如果我們鏈接到外部javascript文件(例如jquery-1.8.2.min.js)不正確。 確保您的鏈接位於正確的路徑。 我將文件保存在“js”文件夾中,並將路徑指定為:

<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>  

其次,如果我們將腳本標記寫為:

<script type="application/javascript"></script>  

代替

<script type="text/javascript"></script> 

我在IE8中使用jQuery 2.0.0時遇到了這個問題。 根據jQuery網站“jQuery 2.x不支持Internet Explorer 6,7或8”。 用jQuery 1.10.2替換jQuery 2.0.0為我解決了這個問題。

有點舊的帖子,但它可能派上用場的人方便,我有同樣的問題,我刪除了腳本標簽中的延遲屬性。

<script type="text/javascript" defer="defer" src="js/libs/jquery-1.8.3.min.js"></script>

成:

<script type="text/javascript" src="js/libs/jquery-1.8.3.min.js"></script>

這對我有用。

這可能不相關,但我剛解決了與IE8相同的問題 - 在IE9上運行良好的代碼以及在IE8上窒息的其他一切。

答案就像改變一樣簡單

 <script type="text/javascript" src="/myjavascript.js"></script> 
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/myjavascript.js"></script> 

......換句話說,JQuery首先。 這解決了我的問題; 因人而異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM