javascript
  • javascript-events
  • prototypejs
  • 2013-04-02 148 views 0 likes 
    0

    好吧,這是我的JavaScriptJavaScript在任何瀏覽器中都能正常工作,但Firefox?

    <script type="text/javascript" language="JavaScript"> 
    function manageCart(task,item) { 
    var url = 'managecart.php'; 
    var params = 'task=' + task + '&item=' + item; 
    var ajax = new Ajax.Updater(
          {success: ''}, 
          url, 
          {method: 'get', parameters: params, onFailure: reportError}); 
    } 
    
    function reportError(request) { 
    $F('cartResult') = "An error occurred"; 
    } 
    

    這是HTML

    <p> 
    <a href="javascript:void(0)" onclick="manageCart('add',83)">Add to cart</a> 
    </p> 
    

    該腳本不工作在Firefox,我已經跑了幾個Firefox的JS調試器,但他們表現出任何錯誤。我不擅長JavaScript,所以請幫助我,如果你可以:) 這個腳本實際上使用Prototype庫,如果它會使事情更清晰。

    +0

    缺少'''在'onclick = manageCart('add',83)「'一個錯字? – Uooo

    +1

    你應該傳遞一個空字符串給成功處理程序嗎? –

    +0

    @ w4rumy是的,這是一個錯字,它不存在於實際的代碼 –

    回答

    0

    我花了更多時間在FireBug中,發現錯誤。

    時間戳:2013年3月4日十點36分38秒 錯誤:的ReferenceError:無效轉讓左側 源文件:http://www.example.com/index.php 線:413,柱:18 源代碼:

    ('cartResult') = "An error occurred"; 
    

    火狐拼命想爲這樣的聲明看起來像這樣:

    ('cartResult') == "An error occurred"; 
    
    +1

    啊是的$ F()方法返回一個字符串,而不是對元素值的引用 - 你正在尋找'$('cartResult')。update(「An error occurred」);'' –

    1

    對於此類Ajax調用請勿使用Ajax.Updater,因爲它旨在用ajax響應的內容更新特定元素。我相信你只想做一個簡單的單個Ajax調用,所以使用Ajax.Request就是你想要的。

    使用的Ajax.Updater

    var url = 'managecart.php'; 
    var params = 'task=' + task + '&item=' + item; 
    var ajax = new Ajax.Updater(
         {success: ''}, 
         url, 
         {method: 'get', parameters: params, onFailure: reportError}); 
    

    代碼中使用的Ajax.Request

    var url = 'managecart.php'; 
    var params = 'task=' + task + '&item=' + item; 
    var ajax = new Ajax.Request(url, 
        { 
          method: 'get', 
          parameters: params, 
          onFailure: reportError, 
          onSuccess: function(){ 
           console.log('It Worked'); 
          } 
        }); 
    

    我把成功處理程序在此調用只是爲了確認它爲你工作原始代碼 - 它應該輸出到您的控制檯。當你滿意時,你可以刪除它或發表評論console.log()它可以工作

    +0

    謝謝你的有價值的信息,但是整件事情仍然不起作用。我找到了問題 –

    相關問題