1

I want to save the value 'final' (what I am logging to the console) to the clipboard every time it is updated. I have looked into clipboard.js but cannot find an example of where they didn't use HTML. In all the examples I've seen they press a button in order to do it but I need it to be automatically copied without any HTML. I tried using navigator.clipboard.writeText() but it gave me an error regarding promises and I'm not too sure how to resolve it or if there is a better solution.

const puppeteer = require("puppeteer");
  const url = "https://www.google.com/";
  
  async function StartScraping() {
    await puppeteer
      .launch({
        headless: false,
      })
      .then(async (browser) => {
        const page = await browser.newPage();
  
        await page.setViewport({
          width: 2000,
          height: 800,
        });
  
        page.on("response", async (response) => {
  
         
          if (response.url().includes("Example")) {
            const location = await response.text() 
            let ping1= location.indexOf("Follow:")
            const final = location.substring(ping1, ping1+ 10)
           
            console.log(final);
            //Copy 'final' to clipboard here

            }
  
        });
  
        await page.goto(url, {
          waitUntil: "load",
          timeout: 0,
        });
      });
  }
  StartScraping();
Nicky
  • 57
  • 1
  • 1
  • 7
  • 1
    Does this answer your question? [Copy to clipboard in Node.js?](https://stackoverflow.com/questions/7778539/copy-to-clipboard-in-node-js) – Bagus Tesa Mar 15 '22 at 01:46
  • "tried using navigator.clipboard.writeText() but it gave me an error regarding promises" -- could you share this code and the exact error? Thanks. – ggorlen Mar 15 '22 at 05:55

1 Answers1

0

Yes, you can do this.

You don't need any libraries, you can just do this with one line of code.

navigator.clipboard.writeText("text");

I put it in a function:

function copyText(a){ navigator.clipboard.writeText(a); } copyText("text");

This example uses a button (to execute the function):

function copyText(a) {
  navigator.clipboard.writeText(a);
}
<h1>Copy text on button click</h1>
<p>Copy text without a form input or any extra js libraries</p>
<button onclick="copyText('Hello World!');">Copy</button>

It doesn't work in this snippet, but if you put it into jsfiddle or a w3schools tryit page, it would work.

ethry
  • 731
  • 6
  • 17