init commit
This commit is contained in:
		
							
								
								
									
										11
									
								
								background.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								background.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
chrome.browserAction.onClicked.addListener(function(callback) {
 | 
			
		||||
	//chrome.declarativeContent.ShowPageAction();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
chrome.runtime.onInstalled.addListener(function() {
 | 
			
		||||
//  chrome.storage.sync.set({color: '#3aa757'}, function() {
 | 
			
		||||
//    console.log("The color is green.");
 | 
			
		||||
//  });
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										14
									
								
								common_content_script.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								common_content_script.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
function getElementByXpath(path) {
 | 
			
		||||
	return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
 | 
			
		||||
	if (request.action == "requestPics") {
 | 
			
		||||
		// TODO: check url, use different match rule to return data.
 | 
			
		||||
		let a = getElementByXpath("//article[contains(@role,'article')][1]//a[contains(@href,'/photo/')]//img/@src");
 | 
			
		||||
		console.log(a);
 | 
			
		||||
		sendResponse({dateType: 'urlList', urlList: a});
 | 
			
		||||
	} else {
 | 
			
		||||
		sendResponse({}); // Send nothing..
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										20
									
								
								manifest.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								manifest.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
{
 | 
			
		||||
	"name": "Download The Pics (WebExtension Client)",
 | 
			
		||||
	"version": "1.0",
 | 
			
		||||
	"manifest_version": 2,
 | 
			
		||||
	"description": "Download The Pics WebExtension Client. You also need the local daemon process to make this extension works",
 | 
			
		||||
	"background": {
 | 
			
		||||
		"scripts": ["background.js"]
 | 
			
		||||
	},
 | 
			
		||||
	"browser_action": {
 | 
			
		||||
		"default_popup": "popup.html"
 | 
			
		||||
	},
 | 
			
		||||
	"content_scripts": [
 | 
			
		||||
	{
 | 
			
		||||
		"matches": ["<all_urls>"],
 | 
			
		||||
		"run_at": "document_start",
 | 
			
		||||
		"js": ["common_content_script.js"]
 | 
			
		||||
	}
 | 
			
		||||
  ],
 | 
			
		||||
	"permissions": ["activeTab", "declarativeContent"]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								popup.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								popup.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html>
 | 
			
		||||
  <head>
 | 
			
		||||
    <style>
 | 
			
		||||
      button {
 | 
			
		||||
        height: 30px;
 | 
			
		||||
        width: 90px;
 | 
			
		||||
        outline: none;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
    <button id="download"></button>
 | 
			
		||||
    <script src="popup.js"></script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										27
									
								
								popup.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								popup.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
let downloadBtn = document.getElementById('download');
 | 
			
		||||
// 
 | 
			
		||||
// chrome.storage.sync.get('color', function(data) {
 | 
			
		||||
// 	changeColor.style.backgroundColor = data.color;
 | 
			
		||||
// 	changeColor.setAttribute('value', data.color);
 | 
			
		||||
// });
 | 
			
		||||
 | 
			
		||||
downloadBtn.onclick = function(element) {
 | 
			
		||||
 | 
			
		||||
// 	chrome.tabs.query({currentWindow: true, active: true}, function(tabs) {
 | 
			
		||||
// 		console.log(tabs[0].url);
 | 
			
		||||
// 	});
 | 
			
		||||
	
 | 
			
		||||
	chrome.tabs.getSelected(null, function(tab) {
 | 
			
		||||
		// Send a request to the content script.
 | 
			
		||||
		chrome.tabs.sendRequest(tab.id, {action: "requestPics"}, function(response) {
 | 
			
		||||
			console.log(response);
 | 
			
		||||
		});
 | 
			
		||||
	});
 | 
			
		||||
	
 | 
			
		||||
// 	let color = element.target.value;
 | 
			
		||||
// 	chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
 | 
			
		||||
// 		chrome.tabs.executeScript(
 | 
			
		||||
// 			tabs[0].id,
 | 
			
		||||
// 			{code: 'document.body.style.backgroundColor = "' + color + '";'});
 | 
			
		||||
// 	});
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user