Javascript Chrome扩展-在popup.html中激活当前选项卡的脚本
我不知道如何正确地问这个问题,因为很难解释,所以我将举一个例子 我想做的是弄清楚如何使用chrome扩展的popup.html中的链接激活书签之类的东西,该扩展将与当前选项卡交互 例如:如果单击chrome扩展图标,将出现一个弹出窗口(通常的下拉窗口)。在这个窗口中会有一个按钮,可以增加图像的大小(就像书签栏上的书签) 我想要的是该按钮与当前打开的选项卡交互,而不是popup.html页面 我拥有清单中的适当权限(所有URL和选项卡)以及正在定义的脚本。那里一切都很好。但我知道我的解决方案(不起作用)可能离目标很远,我甚至可能还没有接近目标。所以我在这里请求帮助 background.jsJavascript Chrome扩展-在popup.html中激活当前选项卡的脚本,javascript,google-chrome-extension,bookmarklet,Javascript,Google Chrome Extension,Bookmarklet,我不知道如何正确地问这个问题,因为很难解释,所以我将举一个例子 我想做的是弄清楚如何使用chrome扩展的popup.html中的链接激活书签之类的东西,该扩展将与当前选项卡交互 例如:如果单击chrome扩展图标,将出现一个弹出窗口(通常的下拉窗口)。在这个窗口中会有一个按钮,可以增加图像的大小(就像书签栏上的书签) 我想要的是该按钮与当前打开的选项卡交互,而不是popup.html页面 我拥有清单中的适当权限(所有URL和选项卡)以及正在定义的脚本。那里一切都很好。但我知道我的解决方案(不起
function zii() {
function zoomImage(image, amt) {
if (image.initialHeight == null) { /* avoid accumulating integer-rounding error */
image.initialHeight = image.height;
image.initialWidth = image.width;
image.scalingFactor = 1;
}
image.scalingFactor *= amt;
image.width = image.scalingFactor * image.initialWidth;
image.height = image.scalingFactor * image.initialHeight;
}
var i, L = document.images.length;
for (i = 0; i < L; ++i) zoomImage(document.images[i], 2);
if (!L) alert("This page contains no images.");
}
函数zii(){
功能缩放图像(图像,amt){
如果(image.initialHeight==null){/*避免累积整数舍入错误*/
image.initialHeight=image.height;
image.initialWidth=image.width;
image.scalingFactor=1;
}
image.scalingFactor*=金额;
image.width=image.scalingFactor*image.initialWidth;
image.height=image.scalingFactor*image.initialHeight;
}
变量i,L=document.images.length;
对于(i=0;i
popup.html
<button onClick="zii()">Test</button>
测试
后台函数也链接到popup.html页面内。实际的popup.html页面非常大,所以我只是在这里展示了它的基础知识,而没有包括与扩展的其他方面相关的所有代码
我显然不知道我做错了什么,也不知道我的尝试是否可能
目标摘要:
简单地说,我只想单击popup.html中的按钮,并增加当前打开选项卡上图像的大小(与使用bookmarklet进行此操作的方式相同)。首先,我建议阅读有关的内容 如果要通过单击弹出窗口中的按钮在当前窗口中插入.js文件或某些代码,只需在按钮onclick处理程序中使用
null
作为第一个tabId
参数(默认为当前窗口的活动选项卡)即可
例如:
chrome.tabs.executeScript(null, {
code: "console.log('Injected.')"
});
或:
请确保在您的
manifest.json
权限中也有“activeTab”
。首先,我建议您阅读有关
如果要通过单击弹出窗口中的按钮在当前窗口中插入.js文件或某些代码,只需在按钮onclick处理程序中使用null
作为第一个tabId
参数(默认为当前窗口的活动选项卡)即可
例如:
chrome.tabs.executeScript(null, {
code: "console.log('Injected.')"
});
或:
请确保在您的
manifest.json
权限中也有“activeTab”
。非常感谢。解决我的问题的原因很明显(正如你提到的),而且我甚至不知道“activeTab”权限。我只是觉得我必须用“标签”,非常感谢。解决我的问题的原因很明显(正如你提到的),而且我甚至不知道“activeTab”权限。我只是觉得我必须使用“标签”。