【发布时间】:2014-09-16 00:09:36
【问题描述】:
我正在尝试更改使用 chrome 扩展名下载的文件的名称。我所做的是解析网页(使用 jQuery),从中给出文件的名称。现在这是我的代码结构:
download event listener{
javascript code
jquery code to parse webpage
change file name
}
发生的情况是文件在 jquery 完成解析和更改文件名之前下载,代码在 jquery 完成执行之前运行,这反过来导致错误的文件名。我不明白问题是什么以及如何纠正它。我认为不需要完整的代码,所以我不发布它。有什么方法可以限制文件名更改,直到 jquery 完成? 编辑 代码:
chrome.downloads.onDeterminingFilename.addListener(
function (downloadItem, suggest)
{ window.alert(downloadItem.url);
window.alert("inside downloads");
if (/^https?:\/\/ieeexplore\.ieee\.org.*/.test(downloadItem.referrer))
{
x=downloadItem.url;
window.alert("match done")
folder="newww";
window.alert(String(downloadItem.referrer));
z=downloadItem.referrer;
var res = z.split("arnumber=");
var res1 = res[1].split("&");
alert(res1[0]);
console.log(res1[0]);
u="http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber="+res1[0];
console.log(u);
$(document).ready(function(){
$.get(u, function(data)
{//parse webpage here
//set the value of name here
});
});
if(isPDF(downloadItem))
{ alert("lame");
suggest({filename: folder + "/" + name});
}
else suggest();
}
});
function isPDF(item)
{
if(item.mime === "application/pdf") return true;
else if (item.filename.match(/\.pdf$/i)) return true;
else return false;
}
问题是更改名称的 if 函数在 jquery 之前运行...
【问题讨论】:
-
也许有人能说出投票反对的原因!!
-
我很乐意。您应该阅读How to Ask 指南并相应地编辑您的问题。而且您确实应该包含相关代码。
-
我会写评论,但不幸的是我没有足够的声誉来这样做。反正。首先,我认为您被否决了,因为您的问题非常不清楚。您的描述非常模糊,您没有足够详细地解释您实际上在做什么以及如何做。可能发布代码会有所帮助。对于您的实际问题。您可以尝试按照其他答案中的建议将回调函数传递给您的下载函数和/或查看 $(document).ready。或者更简单:你为什么不简单地改变订单?解析网页,下载文件,重命名。还是你的意思是 t
-
@Xan 请看代码..
-
我的反对意见仍然存在,这仍然是一个可怕的问题。
标签: javascript jquery google-chrome google-chrome-extension