如何在没有用户点击的情况下进行复制

时间:2018-07-06 02:00:42

标签: javascript html

我正在使用tampermonkey在js中创建一个脚本来复制和输入密码,然后打开该密码的网站,以便我可以轻松地将其粘贴。但是,复制部分遇到了一些麻烦。从我看到的情况来看,需要用户交互来复制某些内容,并且我了解这是出于安全目的,并且人们不希望将随机的内容放入剪贴板。有没有办法在我的浏览器(Chrome)中将其关闭。如果没有,我还有一个主意。我使用组合键(CTRL 向下箭头)激活脚本以复制并打开新标签,然后使用该用户交互来复制文本。

这是我到目前为止所拥有的

(function() {
  'use strict';

  function KeyPress(e) {
    var evtobj = window.event ? event : e
    if (evtobj.keyCode == 40 && evtobj.ctrlKey) {
      var aTags = document.getElementsByTagName("td");
      var searchText = "WP-Admin Password";

      //Finding The Password
      var pass;
      var found1;
      for (var i = 0; i < aTags.length; i++) {
        if (aTags[i].textContent == searchText) {
          //found 1 is the element that has the search phrase
          found1 = aTags[i];
          //This is where im trying to copy to my clipboard the text content.
          found1.nextSibling.firstChild.textContent; //wp Admin Password
          ;

          break;
        }
      }
      //Finding a Dev url if they have one
      var pass3;
      var found3;
      var dev;
      for (var k = 0; k < aTags.length; k++) {
        if (aTags[k].textContent == "Development URL") {
          found3 = aTags[k];
          if (found3.nextSibling.firstChild.firstChild !== "") {
            found3.nextSibling.firstChild.firstChild.click();
          } else {
            dev = false;
          }
          break;
        }
      }
      //fining the live url and going to it
      var pass2;
      var found2;
      if (!dev) {
        for (var j = 0; j < aTags.length; j++) {
          if (aTags[j].textContent == "Website") {
            found2 = aTags[j];
            found2.nextSibling.firstChild.firstChild.click();; //url
            break;
          }
        }
      }
    }
  }
  document.onkeydown = KeyPress;
})();

2 个答案:

答案 0 :(得分:2)

尝试GM_setClipboard

详细信息:https://github.com/scriptish/scriptish/wiki/GM_setClipboard

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_setClipboard
// ==/UserScript==

GM_setClipboard ("The clipboard now contains this sentence.");

答案 1 :(得分:0)

好的,我想出了一个解决方案

仅当您使用防拆猴子或油脂猴子时,此解决方案才有效

您可以添加

// @grant    GM_setClipboard

对于您的脚本,它将允许您使用Gm_setclipboard()函数。将内容复制到剪贴板。