0
在我尝试学习如何写谷歌Chrome浏览器扩展,我决定写一个其中一旦点击,在弹出按钮的延伸打开一个新窗口并打开一个新的标签,每图片在页面上。每个标签的url是每个图像的src。 (我认为这不是特别有用,我只是将其作为练习)。谷歌浏览器的行为不同,当弹出被检查
奇怪的是,它的工作原理完全一样,当我有右键点击扩展程序图标,并点击“检查弹出”我期望的那样。它不是按预期工作,当我只是正常使用它。当正常使用时,它只会打开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);
}
}
);
任何人有任何想法,这可能是为什么?
谢谢你,这就是它!在询问问题和回答问题之间,我试着给windows.create函数提供一个字符串数组。它改进了一些东西,但仍然没有显示所有的图像。将'focused:false'添加到新窗口可以解决问题。非常感谢。 – MrMisterMan