123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- const {
- remote,
- clipboard
- } = require('electron');
- const { Menu, MenuItem } = remote
- function copyString () {
- const str = getSelections()
- clipboard.writeText(str)
- }
- function printString () {
- if (document.activeElement) {
- const str = clipboard.readText()
- document.activeElement.value = str
- var eventchange = new Event('change');
- var eventinput = new Event('input');
- document.activeElement.dispatchEvent(eventchange);
- document.activeElement.dispatchEvent(eventinput);
- clipboard.clear()
- }
- }
- function getContextMenu(){
-
- window.addEventListener('contextmenu', function (e) {
- e.preventDefault()
- let menu = new Menu()
-
-
-
-
-
-
-
-
-
-
-
- let flag = false
- const tagName = document.activeElement.tagName
- const str = clipboard.readText()
- let selectStr = getSelections()
- const text = e.target.innerText || ''
- const value = e.target.value || ''
-
- if (selectStr) {
- flag = true
- selectStr = selectStr.replace(/\r\n\t\f\v/g,"")
- selectStr = selectStr.replace(/\n/g,"")
- selectStr = selectStr.replace(/\t/g,"")
- selectStr = selectStr.replace(/\f/g,"")
- selectStr = selectStr.replace(/\v/g,"")
-
- if (text.indexOf(selectStr) !== -1 || value.indexOf(selectStr) !== -1) menu.append(new MenuItem({ label: '复制', click: copyString }))
- }
- if (str && (tagName === 'INPUT' || tagName === 'TEXTAREA')) {
- flag = true
- menu.append(new MenuItem({ label: '粘贴', click: printString }))
- }
-
-
-
- console.log(flag,getSelections(),str)
- if (flag && (getSelections() || str)) {
-
- menu.popup(remote.getCurrentWindow())
- }
- }, false)
- }
- function getSelections () {
- var text = ''
- if (window.getSelection) {
- text = window.getSelection().toString()
- } else if (document.selection && document.selection.type !== 'Control') {
- text = document.selection.createRange().text
- }
- if (text) {
- return text
- }
- }
- getContextMenu()
|