JavaScript在任何浏览器中运行良好,但Firefox?

时间:2013-04-02 08:14:32

标签: javascript javascript-events prototypejs

好的,这是我的JavaScript

<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库,如果它会使事情更清楚。

2 个答案:

答案 0 :(得分: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');
          }
     });

我在此调用中设置了一个成功处理程序,以确认它对您有用 - 并且它应该输出到您的控制台。您可以删除它,或在您对其有效时<{1}}发表评论

答案 1 :(得分:0)

我在FireBug上花了更多时间并发现错误。

时间戳:03.04.2013 10:36:38 错误:ReferenceError:左侧无效分配 源文件:http://www.example.com/index.php 行:413,专栏:18 源代码:

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

Firefox迫切希望声明看起来像这样:

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