【发布时间】:2011-10-31 06:47:31
【问题描述】:
在我尝试学习如何编写 Google 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);
}
}
);
有人知道为什么会这样吗?
【问题讨论】:
标签: javascript google-chrome console google-chrome-extension