Переглянути джерело

Merge branch 'master' into dev_220318_test

# Conflicts:
#	src/entry/content.js
#	src/view/test.vue
wenliming 3 роки тому
батько
коміт
6ef994a2be

+ 47 - 8
src/entry/content.js

@@ -1,10 +1,49 @@
 console.log('123 world content todo something~')
-addDeNetBtn();
-
-function addDeNetBtn () {
-	let scheduleTweet = document.querySelectorAll('[aria-label="Schedule Tweet"]')[0];
-	let span = document.createElement('span');
-	span.innerText = 'test';
-	scheduleTweet.parentNode.insertBefore(span, scheduleTweet.nextSibling);
-	console.log(scheduleTweet)
+let span = document.createElement('span');
+
+const shadowRoot = span.attachShadow({mode: 'closed'})
+const shadowDiv = document.createElement('div');
+shadowDiv.innerText = 'Test Btn'
+shadowRoot.appendChild(shadowDiv)
+let tweet;
+
+
+document.addEventListener('DOMContentLoaded', function () {
+	addIframe();
+	
+	setTimeout(() => {
+		addDeNetBtn(span);
+		tweet = document.querySelectorAll('[aria-label="Tweet"]')[0];
+		tweet.addEventListener('click', function () {
+			addDeNetBtn(span);
+		})
+	}, 1000)
+})
+
+function addDeNetBtn (dom) {
+	setTimeout(() => {
+		let scheduleTweet = document.querySelectorAll('[aria-label="Schedule Tweet"]')[0];
+		if (scheduleTweet) {
+			scheduleTweet.parentNode.insertBefore(dom, scheduleTweet.nextSibling);
+		} else {
+			setTimeout(() => {
+				scheduleTweet = document.querySelectorAll('[aria-label="Schedule Tweet"]')[0];
+				scheduleTweet.parentNode.insertBefore(dom, scheduleTweet.nextSibling);
+				
+			}, 1000)
+		}
+		
+		dom.addEventListener('click', () => {
+			console.log('click', 8888, )
+			document.getElementById('iframe-test').contentWindow.postMessage({a : 1}, '*');
+		})
+	})
+}
+
+function addIframe () {
+	let iframe = document.createElement('iframe')
+	iframe.src = chrome.runtime.getURL('/iframe/test.html')
+	iframe.id = 'iframe-test'
+	iframe.style.cssText = 'position:fixed;top:0px;right:0;display:block; width:500px;height:500px;z-index:1000; border: medium none;';
+	document.body.appendChild(iframe)
 }

+ 14 - 2
src/manifest.development.json

@@ -14,10 +14,22 @@
             "matches": [
                 "<all_urls>"
             ],
+            "run_at": "document_start",
             "js": [
                 "/js/content.js"
             ]
         }
     ],
-    "options_page": "options.html"
-}
+    "options_page": "options.html",
+    "web_accessible_resources": [
+        {
+          "resources": [
+            "/iframe/test.html"
+          ],
+          "matches": [
+            "<all_urls>"
+          ]
+        }
+
+    ]
+}

+ 2 - 1
src/manifest.production.json

@@ -14,6 +14,7 @@
             "matches": [
                 "<all_urls>"
             ],
+            "run_at": "document_start",
             "js": [
                 "/js/content.js"
             ],
@@ -23,4 +24,4 @@
         }
     ],
     "options_page": "options.html"
-}
+}

+ 1 - 1
src/view/options.vue

@@ -9,7 +9,7 @@ export default {
   name: 'optionsView',
   data () {
     return {
-      msg: 'options'
+      msg: 'options123'
     }
   }
 }

+ 6 - 0
src/view/test.vue

@@ -38,6 +38,12 @@
         // catch error
       })
   });
+
+
+	window.addEventListener('message', function (event) {
+		console.log('addEventListener',event)
+    if (event.data) {handleClose();}
+	});
 </script>
 
 <style>