我正在编写一个 Chrome 扩展程序来以与 Delicious 类似的方式存储链接。作为我的扩展的一部分,我想保存我正在存储的链接的关键字。为了获得这个关键字,我使用以下函数:
EXT.get_keywords = function (tab) {
var keywords = [];
if(tab) {
chrome.tabs.executeScript(tab.id, {file:"js/keywords.js"},
(function(keywords) {
return function (res) {
var kw_str = res && res[0];
if (kw_str) {
keywords.push.apply(keywords, kw_str.split(","));
}
}
})(keywords));
}
console.log(keywords);
return keywords;
}
“js/keywords.js”文件的内容如下:
var metas = document.getElementsByTagName('meta'),
i = 0,
result = "";
for (i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") === "keywords") {
result = metas[i].getAttribute("content");
break;
}
}
result;
“js/keywords.js”脚本运行良好,回调函数从关键字标签中获取内容字符串(如果存在),但在执行回调后,关键字变量始终为[]
. 任何想法?
PS:这很奇怪,因为如果我在该行执行带有断点的脚本,console.log(keywords)
它可以工作,但如果断点不存在,它就不会:S。