0

已经没有足够接近的东西了……至少我的新手头脑可以理解。

我只是想尝试创建一个具有方法的全局包含对象,其中包含创建和使用 AJAX 请求的说明。然后我继续为按钮创建一个事件侦听器。然后我得到以下控制台输出。

Port: Could not establish connection. Receiving end does not exist. -This was deleted-.net/:1
Uncaught ReferenceError: globOject is not defined script.js:21
Port: Could not establish connection. Receiving end does not exist. -This was deleted-.net/:1
Exception in onResRdy: TypeError: Cannot read property 'htmlRes' of undefined ContentScript.js:84

我确定我在这里做错了很多。让我知道我需要提供哪些额外信息才能获得这方面的帮助。

var globObject = {
sendToServer: function () {
    alert('you got to me at least!');
    var xhr;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xhr=new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xhr=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.open('POST', 'counterDoc.php', true);
    xhr.send();
},
counterClick: function (counter) {
    alert('you got here!');
    counter += 1;
    this.sendToServer();
}};
var button = document.getElementById('submbut').addEventListener('click',globOject.counterClick(0), true);
4

2 回答 2

0

改变这个

var button = document.getElementById('submbut').addEventListener('click',globOject.counterClick(0)

var button = document.getElementById('submbut').addEventListener('click',globObject.counterClick(0)

这部分有印刷错误

globOject.counterClick(0)
于 2013-10-24T02:54:42.330 回答
0
  1. 修复我在评论中说的错字以及@Bonakid 提到的错字。globOject.counterClick(0), true);应该globObject.counterClick(0), true);

  2. 不要globObject.counterClick(0)用于回调函数,globObject.counterClick而是使用。第一个将在globObject定义后立即被调用。

  3. 不使用this.sendToServer();globObject.sendToServer();改为使用。thiscounterClick方法中将document.getElementById('submbut')是一个 HTML 元素。添加console.log(this)counterClick,你会看到。

一个工作演示在这里

于 2013-10-24T03:01:12.470 回答