我想要实现的目标很简单。
现在有一个名为Note Anywhere的扩展程序。请注意,当您单击应用程序的图标时,便笺会显示在网页上,您可以拖动该div,并将该div放在任意位置。
我想要达到的目标非常相似。
一旦我能让div实际显示,我会担心拖放。我花了超过16个小时试图达到这个效果,在极度激动之后我不得不编辑我的问题,并再次询问更新的信息。所以这将不再是一个问题。
这是我的代码。
清单:
{
"name": "CamDesk",
"version": "0.0.1",
"description": "The Desktop Webcam Widget",
"permissions": ["tabs", "http://*/*", "https://*/*"],
"background_page": "background.html",
"browser_action": {
"default_icon": "images/logo.png",
"default_title": "CamDesk"
},
"content_scripts": [ {
"matches": ["http://*/*", "https://*/*"],
"css": ["css/style.css"],
"js": ["js/jquery.js", "js/jquery-swfobject.js", "js/background.js"]
} ],
"icons": {
"48": "images/48x48.png",
"256": "images/logo.png"
}
}
CSS :
.camdesk {
display:none;
width:320px;
height:240px;
background-color:#FFF;
box-shadow:0px 4px 16px rgba(0, 0, 0, 0.8);
overflow:hidden;}
背景页:
<html>
<head>
<script src="js/background.js"></script>
</head>
<div id="camdesk">
Please install the most recent version of flash to use CamDesk.
</div>
</html>
内容脚本:“显示和隐藏DIV”
$(document).ready(function() {
$('.camdesk').flash({
swf: './camdesk.swf',
width: 320,
height: 240
});
});
chrome.browserAction.onClicked.addListener(getMessage);
getMessage();
function getMessage() {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(null, function(tab) {
$('.camdesk').fadeOut(350);
}); //getting response from content script
});
}
chrome.extension.onRequest.addListener(
function(sendResponse) {
if $('.camdesk').fadeIn(350);
$('.camdesk').fadeOut(350);
else
sendResponse({});
});
答案 0 :(得分:4)
要创建该效果,您需要使用Content Scripts。这是您可以操作访问网站的DOM的唯一方法。由于您来自扩展上下文(浏览器操作按钮),您需要使用Message Passing来传输命令以显示/隐藏到DOM。
所以实现你需要的步骤:
希望能给你一点点推力!