Расширение Google Chrome: цикл для назначения функций chrome.tabs.create - PullRequest
1 голос
/ 20 мая 2011

Я хочу иметь список ссылок, чтобы каждая из них открывала свое видео на Youtube, предварительно определенное в файле links.xml.Этот файл работает отлично, и все ссылки генерируются, но всякий раз, когда я нажимаю любой из них , он открывает новую вкладку с URL-адресом ссылки last в списке.Что я делаю не так?

<style>
body { width:550px; }
</style>

<script>
var req = new XMLHttpRequest();
req.open("GET", "links.xml");
req.onload = showLinks;
req.send(null);

function showLinks() {
  var links = req.responseXML.getElementsByTagName("link");
  var p, a, h, t;

  for (var i = 0, link; link = links[i]; i++) {
    p = document.createElement("p");
    a = document.createElement("a");
    h = link.getAttribute("http");
    t = link.getAttribute("title");
    p.appendChild(document.createTextNode((i+1) + ') '));
    a.href = h;
    a.onclick = function() { chrome.tabs.create( { url: h } ); }
    a.appendChild(document.createTextNode(t));
    p.appendChild(a);
    document.body.appendChild(p);
  }
}
</script>

1 Ответ

1 голос
/ 13 июня 2011

Spacevillain был правильный:

кажется, что вам нужно использовать замыкания, проверьте эту ссылку: http://www.mennovanslooten.nl/blog/post/62

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...