JavaScript在除Firefox之外的任何浏览器中都能正常工作?

JavaScript在除Firefox之外的任何浏览器中都能正常工作?,javascript,prototypejs,dom-events,Javascript,Prototypejs,Dom Events,好的,这是我的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: ''},

好的,这是我的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";
}

功能manageCart(任务、项目){
var url='managecart.php';
var params='task='+task+'&item='+item;
var ajax=new ajax.Updater(
{成功:'},
网址,
{方法:'get',参数:params,onFailure:reportError});
}
函数报告错误(请求){
$F('cartResult')=“发生错误”;
}
这是HTML

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

这个脚本在Firefox中不起作用,我已经运行了一些Firefox JS调试器,但它们没有显示错误。我的JavaScript不是很好,所以如果可以,请帮助我:)
这个脚本实际上使用了原型库,如果它能让事情变得更清楚的话

对于这种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()
进行注释

我在FireBug中花费了更多的时间并发现了错误

时间戳:03.04.2013 10:36:38 错误:ReferenceError:左侧的赋值无效 源文件: 行:413,列:18 源代码:

('cartResult') = "An error occurred";
Firefox非常希望该声明如下所示:

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

onclick=manageCart('add',83)
中缺少的
是一个输入错误吗?您应该向成功处理程序传递一个空字符串吗?@w4rumy是的,它是一个输入错误,在实际代码中不存在。好的,因此没有成功处理程序?您如何知道脚本在FF中不起作用?因为它不会失败?如果成功了呢?我想你应该添加一些日志。我通常写一些像。。。然后将更新程序绑定到类,读取href属性并将其用于AJAX请求。但这可能与您的实际问题无关,只是更容易调试。感谢您提供的宝贵信息,但整个过程仍然不起作用。我发现了一个问题:是的,
$F()
方法返回一个字符串,而不是元素值的引用-您正在查找
$('cartreult')。更新(“发生错误”)