В моих попытках научиться писать расширения Google Chrome я решил написать такое, где при нажатии кнопки во всплывающем окне расширение открывает новое окно и открывает новую вкладку для каждого изображения на странице.URL каждой вкладки является источником для каждого изображения.(Я не думаю, что это особенно полезно, я делаю это просто как упражнение).
Странная вещь в том, что это работает именно так, как я ожидал, когда щелкнул правой кнопкой мыши на значке расширенияи нажал «проверить всплывающее окно».Это не работает должным образом, когда я просто использую его как обычно.При обычном использовании он открывает только 3 или 4 изображения (еще более странно то, что каждый раз ему удается открывать разное количество изображений).
Вот мой код
popup.html
<script type="text/javascript">
function getImages() {
chrome.tabs.getSelected(null, function(tab){
chrome.tabs.sendRequest(tab.id, {code: "getImages"}, function(images) {
console.log(images);
openImages(images);
});
});
}
function openImages(images) {
chrome.windows.create({url: images[0]}, function(window) {
for(var i=1; i<images.length; i++) {
chrome.tabs.create({windowId: window.id, url: images[i]});
}
});
}
</script>
<button onclick="getImages();">Open images</button>
contentscript.js
chrome.extension.onRequest.addListener(
function(request, sender, response) {
if(request.code == 'getImages') {
console.log("We're in!");
var urls = [];
var images = document.getElementsByTagName("img");
for(var i=0; i<images.length; i++) {
urls.push(images[i].src);
}
console.log(urls);
response(urls);
}
}
);
У кого-нибудь есть идеи, почему это может быть?