【问题标题】:JavaScript works fine in any browser but Firefox?JavaScript 在除 Firefox 之外的任何浏览器中都能正常工作?
【发布时间】:2013-04-02 08:14:31
【问题描述】:

好的,这是我的 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 库,如果它能让事情更清楚的话。

【问题讨论】:

标签: javascript prototypejs dom-events


【解决方案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()

【讨论】:

  • 感谢您提供宝贵的信息,但整个事情仍然无法正常工作。我找到了问题
【解决方案2】:

我在 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"; 

【讨论】:

  • 啊,是的,$F() 方法返回一个字符串,而不是对元素值的引用 - 您正在寻找 $('cartResult').update("An error occurred");
猜你喜欢
  • 2013-06-21
  • 2013-08-31
  • 1970-01-01
  • 2020-09-18
  • 2012-11-25
  • 2012-08-09
  • 2017-07-03
  • 2011-03-20
  • 1970-01-01
相关资源
最近更新 更多