Javascript 每次ajax调用后,Chrome扩展都会重新执行main popup.html上的代码
我试图计算用户点击URL的次数 大多数状态都保存在服务器上 但是,当我将URL作为用户的输入并进行ajax调用以获得相应的计数时,它会重新执行整个脚本。基本上,通过重新执行sendPageOpen()函数来获取数据,从而在主体上过度写入整个数据。它通过ajax调用暂时写入数据,然后替换所有内容,因为它实际上是重新执行的 如果我从服务器发送更多消息,它将侦听并附加到主体(并且不重新执行),但每次在ajax调用后都会重新执行整个代码 虽然每次重新打开弹出窗口时,我都希望使用sendPageOpen()套接字侦听器获取数据,但我不希望它在发出ajax调用后重新执行整个代码 请忽略我重复的工作重新执行这么多次。我在拉扯头发Javascript 每次ajax调用后,Chrome扩展都会重新执行main popup.html上的代码,javascript,jquery,ajax,google-chrome-extension,websocket,Javascript,Jquery,Ajax,Google Chrome Extension,Websocket,我试图计算用户点击URL的次数 大多数状态都保存在服务器上 但是,当我将URL作为用户的输入并进行ajax调用以获得相应的计数时,它会重新执行整个脚本。基本上,通过重新执行sendPageOpen()函数来获取数据,从而在主体上过度写入整个数据。它通过ajax调用暂时写入数据,然后替换所有内容,因为它实际上是重新执行的 如果我从服务器发送更多消息,它将侦听并附加到主体(并且不重新执行),但每次在ajax调用后都会重新执行整个代码 虽然每次重新打开弹出窗口时,我都希望使用sendPageOpen(
var socket = io.connect('http://127.0.0.1:3000');
var url = "";
chrome.tabs.query({"active":true}, function(data){
//alert("why");
console.log(data[0].url);
currentURL = data[0].url;
sendPageOpen(url);
});
$( document ).ready(function() {
console.log( "ready!" );
$('form').submit(function(){
debugger;
console.log("Running");
var myurl = {'url' : currentURL,
'msg' : $('#msg').val()
}
socket.emit('get URL', JSON.stringify(myurl));
$('#body').append($('<li>').text($('#msg').val()));
socket.on(currentURL, function(msg){
// console.log(msg);
$('#body').append($('<li>').text($('#msg').val()));
});
});
});
function sendPageOpen(url){
// debugger;
var page = {'url' : url
};
socket.emit('pageopen', JSON.stringify(page));
socket.on(currentURL, function(msg){
$('#body').append($('<li>').text(msg));
});
// return false;
});
var socket=io.connect('http://127.0.0.1:3000');
var url=“”;
chrome.tabs.query({“active”:true},函数(数据){
//警惕(“为什么”);
console.log(数据[0].url);
currentURL=数据[0]。url;
sendPageOpen(url);
});
$(文档).ready(函数(){
console.log(“准备就绪!”);
$('form')。提交(函数(){
调试器;
控制台日志(“运行”);
var myurl={'url':currentURL,
'msg':$('#msg').val()
}
emit('geturl',JSON.stringify(myurl));
$('body').append($('li>').text($('msg').val());
socket.on(currentURL,函数(msg){
//控制台日志(msg);
$('body').append($('li>').text($('msg').val());
});
});
});
函数sendPageOpen(url){
//调试器;
变量页={'url':url
};
emit('pageopen',JSON.stringify(page));
socket.on(currentURL,函数(msg){
$('#body')。追加($('')。文本(msg));
});
//返回false;
});
缺少事件.preventDefault()代码>在$('form')。提交回调?很好,谢谢。在使用uber cool JS框架之后,我认为jquery是理所当然的。