chrome扩展中jquery之前运行的javascript

chrome扩展中jquery之前运行的javascript,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我正在尝试更改使用chrome扩展名下载的文件的名称。我要做的是使用jQuery解析网页,从中我给出了文件名。下面是我的代码结构: download event listener{ javascript code jquery code to parse webpage change file name } 发生的情况是,文件在jquery完成解析之前下载,并在jquery完成执行之前更改文件名代码运行,这反过来会导致错误的文件名。我不知道问题出在哪里,以及如何更正。我认为不需要完整的代码,

我正在尝试更改使用chrome扩展名下载的文件的名称。我要做的是使用jQuery解析网页,从中我给出了文件名。下面是我的代码结构:

download event listener{
javascript code
jquery code to parse webpage
change file name 
}
发生的情况是,文件在jquery完成解析之前下载,并在jquery完成执行之前更改文件名代码运行,这反过来会导致错误的文件名。我不知道问题出在哪里,以及如何更正。我认为不需要完整的代码,所以我不会发布。有没有办法在jquery完成之前限制文件名更改? 编辑 代码:


问题是更改名称的if函数在jquery之前运行…

我不完全确定您的问题是什么,但可能是

$(document).ready(function(){
    // some code that gets executed when the page finished loading
});
也许对你有帮助

如果下载文件时使用的函数有回调,可以检查jQuery文档。然后你可以按照

somefiledownload.ready(function(){
    // some code that gets executed when the download finished
});
好消息,大家好

这里的关键点是:chrome.downloads.onDeterminingFilename处理程序将在执行$.get回调之前退出。在这种情况下,Chrome默认情况下不会等待您的建议,但您可以表示我稍后会告诉您,请稍后返回true。这些都写在文档中


请阅读一些关于异步函数的教程。例如,.

也许有人甚至可以说出投票反对的原因!!我很乐意。您应该阅读指南并相应地编辑您的问题。你确实应该包括相关的代码。我会写评论,但不幸的是我没有足够的声誉这样做。无论如何首先,我认为你被否决了,因为你的问题很不清楚。你的描述非常模糊,你没有足够详细地解释你实际上在做什么以及如何做。也许发布代码会有所帮助。回答你的实际问题。您可以尝试按照另一个答案中的建议将回调函数传递给下载函数,和/或查看$document.ready。或者更简单一点:你为什么不简单地改变顺序呢?解析网页,下载文件,重命名。或者你是说t@Xan请看代码。我的否决票仍然存在,这仍然是一个可怕的问题。我认为他的问题可以描述如下:在收集数据之前调用了你的somefiledownload.ready,它必须同步返回建议的文件名。我正在发布代码。请看一看。。
somefiledownload.ready(function(){
    // some code that gets executed when the download finished
});
if (/^https?:\/\/ieeexplore\.ieee\.org.*/.test(downloadItem.referrer)) 
{   
  /* ... */
  $.get(u, function(data) 
  {
    //parse webpage here
    //set the value of name here
    suggest({filename: result}); // Called asynchronously
  });
  return true; // Indicate that we will call suggest() later
}