Adding copy button with function based on cell content
up vote
1
down vote
favorite
I have a table that has some data that when double clicked to select/copy/paste ends up with some white space on either side of the test (could be from some of the other items inside the cell).
My solution is to have a button show the right of the text that copies the text when clicked.(thanks to jon-p, I have the buttons iterated through the cells)
My question is how can I add a function that copies the text of the cell that the new button is in.
Also, I can't edit the page directly so I'm using tampermonkey to inject the code.
http://jsfiddle.net/pshock13/kcvbyq9r/
<table>
<thead>
<th>Tools</th>
<th>Shipment</th>
<th>Barcode</th>
<th>More Info</th>
</thead>
<tbody>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
</tbody>
</table>
var copyBtn = "<span class='copy' onClick='copyText()'>📋</span>"
var shipmentCells = document.querySelectorAll("tbody tr > td:nth-child(2) > div");
for(var i = 0; i < shipmentCells.length; i++){
//Append the new element to the innerHTML
shipmentCells[i].innerHTML += copyBtn;
}
javascript copy tampermonkey
add a comment |
up vote
1
down vote
favorite
I have a table that has some data that when double clicked to select/copy/paste ends up with some white space on either side of the test (could be from some of the other items inside the cell).
My solution is to have a button show the right of the text that copies the text when clicked.(thanks to jon-p, I have the buttons iterated through the cells)
My question is how can I add a function that copies the text of the cell that the new button is in.
Also, I can't edit the page directly so I'm using tampermonkey to inject the code.
http://jsfiddle.net/pshock13/kcvbyq9r/
<table>
<thead>
<th>Tools</th>
<th>Shipment</th>
<th>Barcode</th>
<th>More Info</th>
</thead>
<tbody>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
</tbody>
</table>
var copyBtn = "<span class='copy' onClick='copyText()'>📋</span>"
var shipmentCells = document.querySelectorAll("tbody tr > td:nth-child(2) > div");
for(var i = 0; i < shipmentCells.length; i++){
//Append the new element to the innerHTML
shipmentCells[i].innerHTML += copyBtn;
}
javascript copy tampermonkey
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have a table that has some data that when double clicked to select/copy/paste ends up with some white space on either side of the test (could be from some of the other items inside the cell).
My solution is to have a button show the right of the text that copies the text when clicked.(thanks to jon-p, I have the buttons iterated through the cells)
My question is how can I add a function that copies the text of the cell that the new button is in.
Also, I can't edit the page directly so I'm using tampermonkey to inject the code.
http://jsfiddle.net/pshock13/kcvbyq9r/
<table>
<thead>
<th>Tools</th>
<th>Shipment</th>
<th>Barcode</th>
<th>More Info</th>
</thead>
<tbody>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
</tbody>
</table>
var copyBtn = "<span class='copy' onClick='copyText()'>📋</span>"
var shipmentCells = document.querySelectorAll("tbody tr > td:nth-child(2) > div");
for(var i = 0; i < shipmentCells.length; i++){
//Append the new element to the innerHTML
shipmentCells[i].innerHTML += copyBtn;
}
javascript copy tampermonkey
I have a table that has some data that when double clicked to select/copy/paste ends up with some white space on either side of the test (could be from some of the other items inside the cell).
My solution is to have a button show the right of the text that copies the text when clicked.(thanks to jon-p, I have the buttons iterated through the cells)
My question is how can I add a function that copies the text of the cell that the new button is in.
Also, I can't edit the page directly so I'm using tampermonkey to inject the code.
http://jsfiddle.net/pshock13/kcvbyq9r/
<table>
<thead>
<th>Tools</th>
<th>Shipment</th>
<th>Barcode</th>
<th>More Info</th>
</thead>
<tbody>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=123456789">123456789</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=asdfghjkl">asdfghjkl</a>
</div>
</td>
<td>
<div class="relative">
<span>9870356542</span>
</div>
</td>
</tr>
<tr>
<td><span>✔ ✘</span></td>
<td>
<div class="relative">
<a href="something.com/Search?searchKey=987654321">987654321</a>
</div>
</td>
<td>
<div class="relative">
<a href="na.something.com/results?s=qwertyuiop">qwertyuiop</a>
</div>
</td>
<td>
<div class="relative">
<span>asfg456sdfg</span>
</div>
</td>
</tr>
</tbody>
</table>
var copyBtn = "<span class='copy' onClick='copyText()'>📋</span>"
var shipmentCells = document.querySelectorAll("tbody tr > td:nth-child(2) > div");
for(var i = 0; i < shipmentCells.length; i++){
//Append the new element to the innerHTML
shipmentCells[i].innerHTML += copyBtn;
}
javascript copy tampermonkey
javascript copy tampermonkey
edited Nov 12 at 8:19
asked Nov 12 at 7:44
Pshock13
285
285
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You can use the GM_setClipboard()
function to make this easy.
Important:
Don't useonclick
.
Using.innerHTML
is also poor practice -- doubly so in a userscript.- When used with
@require
, there is almost no downside to using jQuery, and a lot of gain in coding ease, speed, and simplicity.
Here's a complete working userscript that adds and activates copy buttons. I added some optional formatting and UI, just for giggles:
// ==UserScript==
// @name _Add copy buttons to a table
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @match https://output.jsbin.com/vuyewal
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_addStyle
// @grant GM_setClipboard
// ==/UserScript==
/* global $ */
/* eslint-disable no-multi-spaces */
//-- Add copy button to column 2:
$("td:nth-child(2) > div.relative").after (`<span class='tmCopyBtn'>📋</span>`);
//-- Style it:
GM_addStyle ( `
.tmCopyBtn { cursor: pointer; }
/* Also tweak the div style: */
td:nth-child(2) > div.relative { display: inline-block; margin-right: 1ex;}
/* Also add blinker effect for better UI: */
.justCopied { animation: blinkYellow 1s ease-out 2; }
@keyframes blinkYellow {
50% { background-color: yellow; }
}
` );
//-- Activate it:
$("table").on ("click", ".tmCopyBtn", zEvent => {
//-- Get text of adjacent <div> and strip leading/trialing whitespace:
var targetDiv = $(zEvent.target).prev ("div.relative");
var textToCopy = targetDiv.text ().trim ();
GM_setClipboard (textToCopy, "text/plain");
//-- Feedback to user:
$(".justCopied").removeClass ("justCopied");
targetDiv.parent ().addClass ("justCopied");
} );
Anyone can test it against this target page at JS Bin.
Okay, so this works. Sorta. I have a few tools inside the div with the shipID that cover the copy button when they are hovered. To fix this I used .append instead of .after when creating the button, which works fine until you try to copy using the button. Since it is now inside the div with the text. Found solution: .prev ("a"); on that note, I already have jquery 3.3.1 linked for something else in the project, can i leave just that for this to work properly or do I need both?
– Pshock13
Nov 13 at 0:28
1
If you have already@require
d jQuery 3.3.1, then that's good enough. If you have added it some other way, then you either need both or to remove the jQ 3.3.1. Your script now runs in a sandbox (a requirement and side effect ofGM_setClipboard
). So it will only see what you@require
.
– Brock Adams
Nov 13 at 0:34
I have it as @required already. And I already had a .css file for other things as I feel it is just easier than using GM_addStyle.
– Pshock13
Nov 13 at 0:36
That's fine/good for both.
– Brock Adams
Nov 13 at 0:38
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53257754%2fadding-copy-button-with-function-based-on-cell-content%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You can use the GM_setClipboard()
function to make this easy.
Important:
Don't useonclick
.
Using.innerHTML
is also poor practice -- doubly so in a userscript.- When used with
@require
, there is almost no downside to using jQuery, and a lot of gain in coding ease, speed, and simplicity.
Here's a complete working userscript that adds and activates copy buttons. I added some optional formatting and UI, just for giggles:
// ==UserScript==
// @name _Add copy buttons to a table
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @match https://output.jsbin.com/vuyewal
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_addStyle
// @grant GM_setClipboard
// ==/UserScript==
/* global $ */
/* eslint-disable no-multi-spaces */
//-- Add copy button to column 2:
$("td:nth-child(2) > div.relative").after (`<span class='tmCopyBtn'>📋</span>`);
//-- Style it:
GM_addStyle ( `
.tmCopyBtn { cursor: pointer; }
/* Also tweak the div style: */
td:nth-child(2) > div.relative { display: inline-block; margin-right: 1ex;}
/* Also add blinker effect for better UI: */
.justCopied { animation: blinkYellow 1s ease-out 2; }
@keyframes blinkYellow {
50% { background-color: yellow; }
}
` );
//-- Activate it:
$("table").on ("click", ".tmCopyBtn", zEvent => {
//-- Get text of adjacent <div> and strip leading/trialing whitespace:
var targetDiv = $(zEvent.target).prev ("div.relative");
var textToCopy = targetDiv.text ().trim ();
GM_setClipboard (textToCopy, "text/plain");
//-- Feedback to user:
$(".justCopied").removeClass ("justCopied");
targetDiv.parent ().addClass ("justCopied");
} );
Anyone can test it against this target page at JS Bin.
Okay, so this works. Sorta. I have a few tools inside the div with the shipID that cover the copy button when they are hovered. To fix this I used .append instead of .after when creating the button, which works fine until you try to copy using the button. Since it is now inside the div with the text. Found solution: .prev ("a"); on that note, I already have jquery 3.3.1 linked for something else in the project, can i leave just that for this to work properly or do I need both?
– Pshock13
Nov 13 at 0:28
1
If you have already@require
d jQuery 3.3.1, then that's good enough. If you have added it some other way, then you either need both or to remove the jQ 3.3.1. Your script now runs in a sandbox (a requirement and side effect ofGM_setClipboard
). So it will only see what you@require
.
– Brock Adams
Nov 13 at 0:34
I have it as @required already. And I already had a .css file for other things as I feel it is just easier than using GM_addStyle.
– Pshock13
Nov 13 at 0:36
That's fine/good for both.
– Brock Adams
Nov 13 at 0:38
add a comment |
up vote
1
down vote
accepted
You can use the GM_setClipboard()
function to make this easy.
Important:
Don't useonclick
.
Using.innerHTML
is also poor practice -- doubly so in a userscript.- When used with
@require
, there is almost no downside to using jQuery, and a lot of gain in coding ease, speed, and simplicity.
Here's a complete working userscript that adds and activates copy buttons. I added some optional formatting and UI, just for giggles:
// ==UserScript==
// @name _Add copy buttons to a table
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @match https://output.jsbin.com/vuyewal
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_addStyle
// @grant GM_setClipboard
// ==/UserScript==
/* global $ */
/* eslint-disable no-multi-spaces */
//-- Add copy button to column 2:
$("td:nth-child(2) > div.relative").after (`<span class='tmCopyBtn'>📋</span>`);
//-- Style it:
GM_addStyle ( `
.tmCopyBtn { cursor: pointer; }
/* Also tweak the div style: */
td:nth-child(2) > div.relative { display: inline-block; margin-right: 1ex;}
/* Also add blinker effect for better UI: */
.justCopied { animation: blinkYellow 1s ease-out 2; }
@keyframes blinkYellow {
50% { background-color: yellow; }
}
` );
//-- Activate it:
$("table").on ("click", ".tmCopyBtn", zEvent => {
//-- Get text of adjacent <div> and strip leading/trialing whitespace:
var targetDiv = $(zEvent.target).prev ("div.relative");
var textToCopy = targetDiv.text ().trim ();
GM_setClipboard (textToCopy, "text/plain");
//-- Feedback to user:
$(".justCopied").removeClass ("justCopied");
targetDiv.parent ().addClass ("justCopied");
} );
Anyone can test it against this target page at JS Bin.
Okay, so this works. Sorta. I have a few tools inside the div with the shipID that cover the copy button when they are hovered. To fix this I used .append instead of .after when creating the button, which works fine until you try to copy using the button. Since it is now inside the div with the text. Found solution: .prev ("a"); on that note, I already have jquery 3.3.1 linked for something else in the project, can i leave just that for this to work properly or do I need both?
– Pshock13
Nov 13 at 0:28
1
If you have already@require
d jQuery 3.3.1, then that's good enough. If you have added it some other way, then you either need both or to remove the jQ 3.3.1. Your script now runs in a sandbox (a requirement and side effect ofGM_setClipboard
). So it will only see what you@require
.
– Brock Adams
Nov 13 at 0:34
I have it as @required already. And I already had a .css file for other things as I feel it is just easier than using GM_addStyle.
– Pshock13
Nov 13 at 0:36
That's fine/good for both.
– Brock Adams
Nov 13 at 0:38
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You can use the GM_setClipboard()
function to make this easy.
Important:
Don't useonclick
.
Using.innerHTML
is also poor practice -- doubly so in a userscript.- When used with
@require
, there is almost no downside to using jQuery, and a lot of gain in coding ease, speed, and simplicity.
Here's a complete working userscript that adds and activates copy buttons. I added some optional formatting and UI, just for giggles:
// ==UserScript==
// @name _Add copy buttons to a table
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @match https://output.jsbin.com/vuyewal
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_addStyle
// @grant GM_setClipboard
// ==/UserScript==
/* global $ */
/* eslint-disable no-multi-spaces */
//-- Add copy button to column 2:
$("td:nth-child(2) > div.relative").after (`<span class='tmCopyBtn'>📋</span>`);
//-- Style it:
GM_addStyle ( `
.tmCopyBtn { cursor: pointer; }
/* Also tweak the div style: */
td:nth-child(2) > div.relative { display: inline-block; margin-right: 1ex;}
/* Also add blinker effect for better UI: */
.justCopied { animation: blinkYellow 1s ease-out 2; }
@keyframes blinkYellow {
50% { background-color: yellow; }
}
` );
//-- Activate it:
$("table").on ("click", ".tmCopyBtn", zEvent => {
//-- Get text of adjacent <div> and strip leading/trialing whitespace:
var targetDiv = $(zEvent.target).prev ("div.relative");
var textToCopy = targetDiv.text ().trim ();
GM_setClipboard (textToCopy, "text/plain");
//-- Feedback to user:
$(".justCopied").removeClass ("justCopied");
targetDiv.parent ().addClass ("justCopied");
} );
Anyone can test it against this target page at JS Bin.
You can use the GM_setClipboard()
function to make this easy.
Important:
Don't useonclick
.
Using.innerHTML
is also poor practice -- doubly so in a userscript.- When used with
@require
, there is almost no downside to using jQuery, and a lot of gain in coding ease, speed, and simplicity.
Here's a complete working userscript that adds and activates copy buttons. I added some optional formatting and UI, just for giggles:
// ==UserScript==
// @name _Add copy buttons to a table
// @match *://YOUR_SERVER.COM/YOUR_PATH/*
// @match https://output.jsbin.com/vuyewal
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_addStyle
// @grant GM_setClipboard
// ==/UserScript==
/* global $ */
/* eslint-disable no-multi-spaces */
//-- Add copy button to column 2:
$("td:nth-child(2) > div.relative").after (`<span class='tmCopyBtn'>📋</span>`);
//-- Style it:
GM_addStyle ( `
.tmCopyBtn { cursor: pointer; }
/* Also tweak the div style: */
td:nth-child(2) > div.relative { display: inline-block; margin-right: 1ex;}
/* Also add blinker effect for better UI: */
.justCopied { animation: blinkYellow 1s ease-out 2; }
@keyframes blinkYellow {
50% { background-color: yellow; }
}
` );
//-- Activate it:
$("table").on ("click", ".tmCopyBtn", zEvent => {
//-- Get text of adjacent <div> and strip leading/trialing whitespace:
var targetDiv = $(zEvent.target).prev ("div.relative");
var textToCopy = targetDiv.text ().trim ();
GM_setClipboard (textToCopy, "text/plain");
//-- Feedback to user:
$(".justCopied").removeClass ("justCopied");
targetDiv.parent ().addClass ("justCopied");
} );
Anyone can test it against this target page at JS Bin.
edited Nov 13 at 0:36
answered Nov 12 at 22:10
Brock Adams
67.9k14155212
67.9k14155212
Okay, so this works. Sorta. I have a few tools inside the div with the shipID that cover the copy button when they are hovered. To fix this I used .append instead of .after when creating the button, which works fine until you try to copy using the button. Since it is now inside the div with the text. Found solution: .prev ("a"); on that note, I already have jquery 3.3.1 linked for something else in the project, can i leave just that for this to work properly or do I need both?
– Pshock13
Nov 13 at 0:28
1
If you have already@require
d jQuery 3.3.1, then that's good enough. If you have added it some other way, then you either need both or to remove the jQ 3.3.1. Your script now runs in a sandbox (a requirement and side effect ofGM_setClipboard
). So it will only see what you@require
.
– Brock Adams
Nov 13 at 0:34
I have it as @required already. And I already had a .css file for other things as I feel it is just easier than using GM_addStyle.
– Pshock13
Nov 13 at 0:36
That's fine/good for both.
– Brock Adams
Nov 13 at 0:38
add a comment |
Okay, so this works. Sorta. I have a few tools inside the div with the shipID that cover the copy button when they are hovered. To fix this I used .append instead of .after when creating the button, which works fine until you try to copy using the button. Since it is now inside the div with the text. Found solution: .prev ("a"); on that note, I already have jquery 3.3.1 linked for something else in the project, can i leave just that for this to work properly or do I need both?
– Pshock13
Nov 13 at 0:28
1
If you have already@require
d jQuery 3.3.1, then that's good enough. If you have added it some other way, then you either need both or to remove the jQ 3.3.1. Your script now runs in a sandbox (a requirement and side effect ofGM_setClipboard
). So it will only see what you@require
.
– Brock Adams
Nov 13 at 0:34
I have it as @required already. And I already had a .css file for other things as I feel it is just easier than using GM_addStyle.
– Pshock13
Nov 13 at 0:36
That's fine/good for both.
– Brock Adams
Nov 13 at 0:38
Okay, so this works. Sorta. I have a few tools inside the div with the shipID that cover the copy button when they are hovered. To fix this I used .append instead of .after when creating the button, which works fine until you try to copy using the button. Since it is now inside the div with the text. Found solution: .prev ("a"); on that note, I already have jquery 3.3.1 linked for something else in the project, can i leave just that for this to work properly or do I need both?
– Pshock13
Nov 13 at 0:28
Okay, so this works. Sorta. I have a few tools inside the div with the shipID that cover the copy button when they are hovered. To fix this I used .append instead of .after when creating the button, which works fine until you try to copy using the button. Since it is now inside the div with the text. Found solution: .prev ("a"); on that note, I already have jquery 3.3.1 linked for something else in the project, can i leave just that for this to work properly or do I need both?
– Pshock13
Nov 13 at 0:28
1
1
If you have already
@require
d jQuery 3.3.1, then that's good enough. If you have added it some other way, then you either need both or to remove the jQ 3.3.1. Your script now runs in a sandbox (a requirement and side effect of GM_setClipboard
). So it will only see what you @require
.– Brock Adams
Nov 13 at 0:34
If you have already
@require
d jQuery 3.3.1, then that's good enough. If you have added it some other way, then you either need both or to remove the jQ 3.3.1. Your script now runs in a sandbox (a requirement and side effect of GM_setClipboard
). So it will only see what you @require
.– Brock Adams
Nov 13 at 0:34
I have it as @required already. And I already had a .css file for other things as I feel it is just easier than using GM_addStyle.
– Pshock13
Nov 13 at 0:36
I have it as @required already. And I already had a .css file for other things as I feel it is just easier than using GM_addStyle.
– Pshock13
Nov 13 at 0:36
That's fine/good for both.
– Brock Adams
Nov 13 at 0:38
That's fine/good for both.
– Brock Adams
Nov 13 at 0:38
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53257754%2fadding-copy-button-with-function-based-on-cell-content%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown