2014-01-23 36 views
0

您好我有一個代碼張貼在我的網站和它完美的作品在Safari,但在Firefox沒有。我不知道這個問題,因爲代碼很簡單... 下面的代碼:

<input type="text" placeholder="mmm..." class="bar" name="txt" /> 
<input type="hidden" value="" name="map" /> 
<button onclick="post('2')">send</button> 
<div id="prueba"></div> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
    function post(id) { 
     var txtvalue = document.getElementsByName('txt')[0].value; 
     if (document.getElementsByName('map')[0]) { 
      var mapv = document.getElementsByName('map')[0].value; 
     } else { 
      var mapv = ""; 
     } 
     $('#prueba').html('txt:' + txtvalue + '<br>map:' + mapv); 
     $.ajax({ 
      type: "POST", 
      url: "http://m2s.es/app/api/connect/chat.php", 
      data: { 
       txt: txtvalue, 
       map: mapv, 
       id: id 
      }, 
      dataType: 'text', 
      beforeSend: function() { 
       console.log('connecting...') 
      }, 
      complete: function() { 
       console.log('procesing...') 
      }, 
      success: function(result) { 
       console.log(result); 
      }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       console.error(textStatus); 
      } 
     }) 
    } 
</script> 

對於PHP進程後,你必須登錄到http://m2s.es/app,但仍然在Firefox會在控制檯中輸入錯誤(不管是否使用登錄)而不是在safari中,如果你不登錄,它會在控制檯中顯示:'not Login'

+1

什麼是火狐給控制檯錯誤消息? – epascarello

+0

它只是說'錯誤' – user3228573

回答

1

這可能是由crossdomain引起的,如果你沒有登錄,運行這個js代碼在http://m2s.es/下,它會導致crossdomain問題,並且你會在ajax中出錯。

+1

這似乎是對我的瘋狂猜測。 –

+0

而且,爲什麼在Safari工作正常?有沒有辦法讓它在沒有進入域的情況下工作? – user3228573

+0

@ user3228573這可能與瀏覽器不同。 JSONP是解決跨域問題 – leo108

1

好了一個問題,我看到的是不相關的bug是

if (document.getElementsByName('map')[0]) { 

如果長度爲零,比你將有一個錯誤

var map = document.getElementsByName('map'); 
var mapv = map.length ? map[0].value : ""; 

或者只是使用jQuery

var mapv = $('[name="map"]').val(); 
1

當我登錄到您的網站我得到了以下在Fi​​refox中,使用Firebug:

類型錯誤:輸入爲空:appnew.js(40行)

39 var input = document.getElementById('input'); 
40 input.onkeyup = function() { 

在第39行你想獲得ID =輸入一個元素,但因爲你沒有用ID輸入線40的任何元素給出錯誤。

相關問題