有一个很棒的扩展叫做Blipshot,它可以截取页面截图。我需要使用页面级javascript调用扩展,而不是单击它的图标。这个是可能的吗?
发布于 2011-09-29 21:11:25
您不能从网页中调用扩展的任何方法。但是,也可以将内容脚本注入到网页中,并使用sendMessage和onMessage,或者使用onConnect和connect。
编辑扩展:访问chrome://extensions页面,开启开发者模式。解压缩一个扩展和/或访问扩展的目录。编辑manifest.json文件,并添加必要的行(请参见here)。
在后台页面添加事件事件监听器。在内容脚本中添加一个轮询器,例如:
// Content script
var poller = window.setInterval(function() {
if (document.documentElement.getAttribute('extensionCalled')) {
chrome.extension.sendMessage({"anyname": "anything"}, function() {
/*optional callback function.*/alert("Something happened")
});
clearInterval(poller);
}
}, 200);
// Background
chrome.extension.onMessage.addListener(function(request, sender, callback) {
if (request.anyname == "anything") {
function_logic_here();
//Optionally, callback:
callback();
}
});另请参阅
postMessage -可用于在页面和扩展模块之间进行通信(当页面本身也使用message事件时,此方法可能会导致冲突)。参考文献:
发布于 2011-09-29 21:18:13
只有在扩展提供接口的情况下,这才是可能的。扩展在隔离的环境中运行,因此您无法直接访问它们的任何函数。
他们得到的最接近的是内容脚本,这些脚本可以访问DOM。因此,您可以使用事件进行通信,但显然扩展需要为它们设置事件处理程序,因此它完全依赖于扩展。
https://stackoverflow.com/questions/7597310
复制相似问题