В основном вам просто нужно изменить свой обработчик кликов, чтобы не использовать переменные, которые по-прежнему недействительны. Вот пример кода:
var urlList = [
"aaaa",
"bbbb",
];
var textList = [
"text1",
"text2"
];
function createAnchors(urls, text, container) {
for (var i = 0; i < urls.length; i++) {
var a = document.createElement("a");
var div = document.createElement("div");
a.href = urls[i];
a.innerHTML = text[i];
a.className = "foo";
a.addEventListener("click", function() {
chrome.tabs.create({url: this.href});
return(false);
});
div.appendChild(a);
container.appendChild(div);
}
}
Проблема в том, что любые переменные в функции прослушивателя событий не оцениваются до щелчка. Таким образом, в этом случае вы можете избежать их использования, просто получая URL-адрес непосредственно по нажатой ссылке.
Надеюсь, вы также понимаете, что более старые версии IE не поддерживают addEventListener
. Эта страница mozilla показывает, как вы можете справиться с этим в разделе Internet Explorer.