ফ্ল্যাশ ছাড়াই ক্লিপবোর্ডে অনুলিপি করুন


90

ক্লিপবোর্ডে অনুলিপি করার জন্য আমি অনেকগুলি সমাধান খুঁজে পেয়েছি তবে সেগুলি সবই হয় ফ্ল্যাশ দিয়ে, বা ওয়েবসাইটের পক্ষে। আমি ক্লিপবোর্ডে স্বয়ংক্রিয়ভাবে মেথড কপির সন্ধান করছি, ফ্ল্যাশ ছাড়াই এবং ব্যবহারকারীর পক্ষে, এটি ইউজার স্ক্রিপ্ট এবং অবশ্যই ক্রস ব্রাউজারের জন্য।


কোনটি খুঁজে পেল না, একই জিনিস খুঁজছিল। এইভাবে এই ফ্ল্যাশটিকে পূর্বের তৈরির বৈশিষ্ট্যটি সরিয়ে ফেলা হয়েছে want
ইউজেনেক

4
ডুপ্লিকেট stackoverflow.com/questions/400212/...
wizztjh

4
ফ্ল্যাশ ব্যবহার না করেই সন্দেহ করি আপনি এটি বিভিন্ন ব্রাউজারে করতে পেরেছেন। তবে এমন কংক্রিট সমাধান উপলব্ধ রয়েছে যা আপনাকে সমাধানটি জিরোক্লিপবোর্ড
সংকর

রাকেশ - আপনার "কংক্রিট সমাধান" ফ্ল্যাশের উপর ভিত্তি করে। এটি আমার ব্যবহার করা কোনও ব্রাউজারে কাজ করবে না।
রবজি

4
মধ্যে @wizztjh পদ্ধতি stackoverflow.com/questions/400212/... সাইটের পাশ ব্যবহারকারী পাশ @Rakesh না হয় zeroclipboard ভালো কিন্তু আমি সম্পূর্ণভাবে ছাড়া ফ্ল্যাশ পদ্ধতি খুঁজতে চান
Black_Sun

উত্তর:


31

ফ্ল্যাশ ছাড়া এটি বেশিরভাগ ব্রাউজারে সহজভাবে সম্ভব নয়। ব্যবহারকারীর ক্লিপবোর্ডটি সুরক্ষা-সম্পর্কিত সংস্থান হিসাবে এটি পাসওয়ার্ড বা ক্রেডিট কার্ড নম্বরগুলির মতো জিনিস থাকতে পারে। সুতরাং, ব্রাউজারগুলি যথাযথভাবে জাভাস্ক্রিপ্টকে এতে অ্যাক্সেসের অনুমতি দেয় না (কিছু এটি সতর্কতার সাথে দেখায় যে ব্যবহারকারীর নিশ্চিত হয়েছে বা স্বাক্ষরিত জাভাস্ক্রিপ্ট কোড রয়েছে, তবে এর মধ্যে কোনও ক্রস ব্রাউজার নয়)।


21
সুতরাং হয়ত পৃষ্ঠাগুলি ক্লিপবোর্ড থেকে পড়তে পারা উচিত নয়, তবে কেন এটি লিখছেন না? = /
আজেদী 32

4
তবে তারপরে কেন এটি কোনও লুকানো ফ্ল্যাশের মাধ্যমে ঘটতে দেয় যা শূন্য ব্যবহারকারীর বিজ্ঞপ্তি এবং প্রতিক্রিয়া জড়িত?
এরিক গ্রেঞ্জ

4
@ এরিকগ্র্যাঞ্জ: কারণ 1990 এর দশকের মাঝামাঝি নেটস্কেপের কেউ সিদ্ধান্ত নিয়েছে যে পারফরম্যান্সের কারণে ব্রাউজার প্লাগইনগুলি দেশীয় বাইনারি হবে এবং এইভাবে বেশ কিছু করতে সক্ষম হবে। অনলাইন ওয়ার্ল্ড তখনকার অনেক সহজ জায়গা এবং সুরক্ষা এতটা উদ্বেগের বিষয় নয়।
মাইকেল বর্গওয়ার্ট

4
২০১১ সালে এই উত্তরটি সত্য হলেও, ব্রাউজারগুলি ফ্ল্যাশকে হত্যা করার লড়াইয়ে অনেক এগিয়েছে। নীচে আমার উত্তর দেখুন।
হোভিস বিডল

25

আমি ফ্ল্যাশ সমাধান চেষ্টা করেছিলাম এবং আমি খুব পছন্দ করি না। খুব জটিল এবং খুব ধীর। আমি যা করেছি তা হ'ল একটি টেক্সটরিয়া তৈরি করা, সেইটিতে ডেটা .োকানো এবং ব্রাউজার "CTRL + C" ব্যবহার করা।

JQuery জাভাস্ক্রিপ্ট অংশ:

// catch the "ctrl" combination keydown
$.ctrl = function(key, callback, args) {
    $(document).keydown(function(e) {
        if(!args) args=[]; // IE barks when args is null
        if(e.keyCode == key && e.ctrlKey) {
            callback.apply(this, args);
            return false;
        }
    });
};

// put your data on the textarea and select all
var performCopy = function() {
    var textArea = $("#textArea1");
    textArea.text('PUT THE TEXT TO COPY HERE. CAN BE A FUNCTION.');
    textArea[0].focus();
    textArea[0].select();
};

// bind CTRL + C
$.ctrl('C'.charCodeAt(0), performCopy);

এইচটিএমএল অংশ:
<textarea id="textArea1"></textarea>

এখন, আপনি এখানে অনুলিপি করুন পাঠ্য কী অনুলিপি করতে চান তা রাখুন। একটি ফাংশন হতে পারে। ' অঞ্চল। আমার জন্য ভাল কাজ করে। আপনাকে কেবল একটি CTRL + C মিশ্রণ তৈরি করতে হবে। একমাত্র ত্রুটিটি হ'ল আপনি আপনার সাইটে একটি কদর্য টেক্সারিয়া প্রদর্শন করতে চলেছেন। আপনি যদি শৈলী = "প্রদর্শন: কিছুই না" ব্যবহার করেন তবে অনুলিপি সমাধানটি কাজ করবে না।


6
এটি কেবলমাত্র Ctrl + C এর ফাংশনটিকে একটি জাভাস্ক্রিপ্ট ফাংশনে আবদ্ধ করে এবং ওএস ক্লিপবোর্ডে ডেটা রাখে না বলে মনে হয়।
ইসমাইল

নিশ্চিত, ধারণা thats। আপনার জন্য ব্রাউজারের অনুলিপি তৈরি করুন। এখানে একটি অনুরূপ সমাধান রয়েছে: নকআউটজেএসস / উদাহরণস্বরূপ / ক্লিককাউন্টার html । আপনি যখন ডাবল-ক্লিক করেন তারা সামগ্রী সহ জাভাস্ক্রিপ্ট দ্বারা একটি পাঠ্য-অঞ্চল তৈরি করেন।
জুলিও সাইতো

e.metaKeyঅক্সে আমার জন্য কাজ করেনি তাই আমি কীডাউন তুলনায় যুক্ত করেছি, তবে কোনও কারণে, অনুলিপি ক্রিয়াকলাপটি ট্রিগার করা হয়নি। এই ঝাঁকুনি
গ্যাবলেউক্স

4
সাফারিতে অনুলিপি ফাংশনটি কেবল গ্যাবলেউক্সটি সক্ষম হয় যখন পাঠ্য নির্বাচন করা হয়। এটি পূর্বে কাজ করেছিল তবে সাফারি সম্পর্কিত একটি আপডেট সম্প্রতি এটি বন্ধ করেছে। দেখে মনে হচ্ছে কী ডাউন ইভেন্টটি বলার পরে পাঠ্যটি নির্বাচন করা কেবল ব্রাউজারে আর কাটবে না। এখনও ক্রোমে সূক্ষ্ম কাজ করে। ওহ, ঠিক তেমন ব্রাউজারের জন্য ফ্ল্যাশ ব্যবহার করে ফিরে যেতে হতে পারে ....
অরণ মুলহোল্যান্ড

এটার মত. আপনি যে কোনও উপাদানটি দেখার প্রয়োজন নেই যখন আপনি কোনও কারণে (কোনও কারণে) গোপন করতে পারবেন না, আপনি সর্বদা শুরু থেকে প্যাডিং-নীচের মতো দূরে রাখতে পারেন: -1000।
m3nda


10

শেষ পর্যন্ত এখানে! (যতক্ষণ আপনি সাফারি বা আইই 8 সমর্থন করেন না ... -_-)

আপনি এখন ফ্ল্যাশ ছাড়াই আসলে ক্লিপবোর্ড ক্রিয়া পরিচালনা করতে পারেন। এখানে সম্পর্কিত ডকুমেন্টেশন:

https://developer.mozilla.org/en-US/docs/Web/API/ ডকুমেন্ট / এক্সেকমন্ড

https://developers.google.com/web/updates/2015/04/cut-and-copy-commands?hl=en

https://msdn.microsoft.com/en-us/library/hh801227%28v=vs.85%29.aspx#copy


3

ক্লিপবোর্ড এপিআই- এর এক্সব্রোজার সহায়তার জন্য অধৈর্য হয়ে অপেক্ষা করার সময় ...


এটি ক্রোম, ফায়ারফক্স, এজ, আইইতে সুন্দরভাবে কাজ করবে

আইই কেবল একবার ক্লিপবোর্ড অ্যাক্সেস করার জন্য ব্যবহারকারীকে অনুরোধ করবে।
সাফারি (এই প্রবন্ধ লেখার সময়ে 5.1) সমর্থন করে না execCommandজন্যcopy/cut

/**
 * CLIPBOARD
 * https://stackoverflow.com/a/33337109/383904
 */
const clip = e => {
  e.preventDefault();
  
  const cont = e.target.innerHTML;
  const area = document.createElement("textarea");
  
  area.value = e.target.innerHTML; // or use .textContent
  document.body.appendChild(area);
  area.select();
 
  if(document.execCommand('copy')) console.log("Copied to clipboard");
  else prompt("Copy to clipboard:\nSelect, Cmd+C, Enter", cont); // Saf, Other
  
  area.remove();
};


[...document.querySelectorAll(".clip")].forEach(el => 
  el.addEventListener("click", clip)
);
<a class="clip" href="#!">Click an item to copy</a><br>
<a class="clip" href="#!"><i>Lorem</i></a><br>
<a class="clip" href="#!"><b>IPSUM</b></a><br>

<textarea placeholder="Paste here to test"></textarea>

সমস্ত ব্রাউজারগুলি (ফায়ারফক্স ব্যতীত যা কেবলমাত্র মাইম টাইপ হ্যান্ডেল করতে সক্ষম "plain/text"আমি যতক্ষণ না পরীক্ষা করেছি) ক্লিপবোর্ড এপিআই প্রয়োগ করে নি । অর্থাৎ ক্রোম ব্যবহার করে ক্লিপবোর্ড ইভেন্টটি পড়ার চেষ্টা করছি

var clipboardEvent = new ClipboardEvent("copy", {
        dataType: "plain/text",
        data: "Text to be sent to clipboard"
});

নিক্ষেপ: আনকাচড টাইপ এরির: অবৈধ নির্মাণকারী

শ্রেষ্ঠ সম্পদ অবিশ্বাস্য জগাখিচুড়ি যে ব্রাউজার মধ্যে ঘটছে এবং ক্লিপবোর্ড দেখা যায় এখানে (caniuse.com) (→ অধীনে মন্তব্য অনুসরণ "নোটগুলি" )।
এমডিএন বলেছে যে সমস্ত ব্রাউজারগুলির জন্য বেসিক সমর্থন "(ইয়েস)" যা ভুল কারণ হ'ল কমপক্ষে এপিআই কাজ করার আশা করবে to


1

আপনি এইচটিএমএল পৃষ্ঠায় স্থানীয় একটি ক্লিপবোর্ড ব্যবহার করতে পারেন। এটি আপনাকে HTML পৃষ্ঠায় কন্টেন্ট অনুলিপি / কাটা / পেস্ট করতে দেয় তবে তৃতীয় পক্ষের অ্যাপ্লিকেশন থেকে বা দুটি HTML পৃষ্ঠার মধ্যে নয়।

এটি করতে আপনি কীভাবে একটি কাস্টম ফাংশন লিখতে পারেন (ক্রোম এবং ফায়ারফক্সে পরীক্ষিত):

আপনি কীভাবে এটি করতে পারেন তা এখানে ফিডডলই প্রদর্শিত হয়।

আমি রেফারেন্সের জন্য এখানে ফিডলটিও পেস্ট করব।


এইচটিএমএল

<p id="textToCopy">This is the text to be copied</p>
<input id="inputNode" type="text" placeholder="Copied text will be pasted here" /> <br/>

<a href="#" onclick="cb.copy()">copy</a>
<a href="#" onclick="cb.cut()">cut</a>
<a href="#" onclick="cb.paste()">paste</a>

জেএস

function Clipboard() {
    /* Here we're hardcoding the range of the copy
    and paste. Change to achieve desire behavior. You can
    get the range for a user selection using
    window.getSelection or document.selection on Opera*/
    this.oRange = document.createRange();
    var textNode = document.getElementById("textToCopy");
    var inputNode = document.getElementById("inputNode");
    this.oRange.setStart(textNode,0);
    this.oRange.setEndAfter(textNode);
    /* --------------------------------- */
}

Clipboard.prototype.copy = function() {
    this.oFragment= this.oRange.cloneContents();
};

Clipboard.prototype.cut = function() {
    this.oFragment = this.oRange.extractContents();
};

Clipboard.prototype.paste = function() {
    var cloneFragment=this.oFragment.cloneNode(true)
    inputNode.value = cloneFragment.textContent;
};

window.cb = new Clipboard();

আরে এমটিব্রোনা আপনি কি এই উপায়টির জন্য কিছু জসফিডাল সংযুক্ত করবেন এমন কোনও উপায় আছে? এটি সক্রিয় করার মতো বলে মনে হচ্ছে না
নিওসওফ

আমরা কি এখানে এলিমেন্টের জায়গায় স্ট্রিং উত্তীর্ণ করতে পারি
উদয় এ। নভপাড়া ১১

এটি কেবলমাত্র একই অভ্যন্তরে কাজ করে window। এটি কোনও আসল ক্লিপবোর্ড নয় যা ওএস এবং অন্য একটি ব্রাউজার ট্যাবে উপলব্ধ। এছাড়াও নির্বাচনটি সহজেই ব্যবহার করে select()এবং সহজভাবে করা যায়window.getSelection()
রোকো সি বুলজান

0

document.execCommand('copy')আপনি যা চান তা করবে তবে ক্রাফট ছাড়া এই থ্রেডে সরাসরি ব্যবহারযোগ্য উদাহরণ নেই, সুতরাং এটি এখানে:

var textNode = document.querySelector('p').firstChild
var range = document.createRange()
var sel = window.getSelection()

range.setStart(textNode, 0)
range.setEndAfter(textNode)
sel.removeAllRanges()
sel.addRange(range)
document.execCommand('copy')

-2

কাছাকাছি উপায় নেই, আপনি ফ্ল্যাশ ব্যবহার করতে হবে। Jquery.copy নামে একটি JQuery প্লাগইন রয়েছে যা একটি ফ্ল্যাশ (swf) ফাইল ব্যবহার করে ক্রস ব্রাউজারের অনুলিপি এবং পেস্ট সরবরাহ করে। এটি আমার ব্লগে সিনট্যাক্স হাইলাইটার কীভাবে কাজ করে তার সমান।

একবার আপনি jquery.copy.js ফাইলটি রেফারেন্স করে ক্লিপবোর্ডে ডেটা ধাক্কা দেওয়ার জন্য আপনার যা যা করা দরকার তা নিম্নলিখিতটি চালিত হয়:

$.copy("some text to copy");

সুন্দর এবং সহজ ;)


লিঙ্কটি ভাঙ্গা হয়েছে (ফাইলগুলি আর ডাউনলোডের জন্য নেই)
SeinopSys
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.