বর্তমান ক্লিপবোর্ডের সামগ্রী পান? [বন্ধ]


112

আমি আমার স্ক্রিপ্টটি ক্লিপবোর্ডের সামগ্রী সনাক্ত করতে এবং পৃষ্ঠাটি খোলার সময় এটি কোনও পাঠ্যের ক্ষেত্রে পেস্ট করার একটি উপায় জানতে চাই যা ব্যবহারকারীর কাছ থেকে কোনও ইনপুট নেই। এটা কিভাবে করা যাবে?


আপনি যদি পাঠ্যটি অনুলিপি না করে কোনও ধরণের ফ্ল্যাশ ব্যাকএন্ড ব্যবহার না করেন তবে আপনি ব্যবহারকারীর ক্লিপবোর্ডে আসলেই বুঝতে পারবেন না। ------- আপডেট: এখানে আরও সঠিক উত্তর
নফতালি ওরফে নিল

: দয়া করে এখানে পড়তে stackoverflow.com/questions/233719/... stackoverflow.com/questions/127040/...
rmflow


উত্তর:


74

window.clipboardData.getData('Text')কিছু ব্রাউজারে কাজ করবে। তবে, অনেকগুলি ব্রাউজার যেখানে এটি কাজ করে তা ব্যবহারকারীরা তাদের ওয়েবপৃষ্ঠাটি ক্লিপবোর্ডে অ্যাক্সেস রাখতে চান কিনা তা সম্পর্কে অনুরোধ জানাবে।


18
এটি ইন্টারনেট এক্সপ্লোরার ব্যতীত অন্য কোনও ব্রাউজারে কাজ করবে?
অ্যান্ডারসন গ্রিন

6
সম্ভবত না. এই প্রশ্নটি দেখুন: stackoverflow.com/questions/400212/…
ডেভ

7
আপনি এখানে সামঞ্জস্যতা পরীক্ষা করতে পারেন caniuse.com/#search=clipboardData
সের্গে নোভিকভ

4
নোড অবজেক্টের মাধ্যমে আরও ভাল সমাধান পাওয়া যাবে তবে উইন্ডো অবজেক্টের মাধ্যমে নয়। এখানে
rplaurindo

আমি কিপাস এবং এর সুরক্ষা নিয়ে উদ্বিগ্ন। অ্যাপ্লিকেশনটি আমাকে ক্লিপবোর্ডে আমার পাসওয়ার্ডগুলি অনুলিপি করতে দেয়।
রেনি উইঙ্কলার

74

এর মাধ্যমে নতুন ক্লিপবোর্ড এপিআই ব্যবহার করুন navigator.clipboard। এটি এর মতো ব্যবহার করা যেতে পারে:

navigator.clipboard.readText()
  .then(text => {
    console.log('Pasted content: ', text);
  })
  .catch(err => {
    console.error('Failed to read clipboard contents: ', err);
  });

বা অ্যাসিঙ্ক সিনট্যাক্স সহ:

const text = await navigator.clipboard.readText();

মনে রাখবেন যে এটি ব্যবহারকারীকে একটি অনুরোধের অনুরোধ ডায়ালগ বাক্সের সাথে অনুরোধ জানাবে, তাই কোনও মজার ব্যবসা সম্ভব নয়।

কনসোল থেকে কল করা হলে উপরের কোডটি কাজ করবে না। এটি তখন কার্যকর হয় যখন আপনি সক্রিয় ট্যাবে কোড চালান। আপনার কনসোল থেকে কোডটি চালানোর জন্য আপনি একটি সময়সীমা নির্ধারণ করতে এবং দ্রুত ওয়েবসাইট উইন্ডোতে ক্লিক করতে পারেন:

setTimeout(async () => {
  const text = await navigator.clipboard.readText();
  console.log(text);
}, 2000);

গুগল বিকাশকারী ডক্সে এপিআই এবং ব্যবহার সম্পর্কে আরও পড়ুন ।

স্পেক


18
নোট করুন যে কনসোল থেকে ডেকে এলে সর্বদা ত্রুটির ফলাফল হয়। কিন্তু এটা করে সরাসরি ব্যবহারকারী কর্ম উপর কাজ, যেমন যখন আপনি পৃষ্ঠায় একটি বোতামটি টিপুন।
ক্লেসুন

এটি কেবল প্লেইন পাঠ্য ফেরত বলে মনে হচ্ছে ... সমৃদ্ধ পাঠ্য ক্লিপবোর্ডে থাকা অবস্থায়ও। আমি কীভাবে এটি পেতে পারি? \
মাইকেল


আপনি একটি মোড়কে কনসোলে পরীক্ষা করতে পারেন setTimeout, তারপরে পৃষ্ঠায় ফিরে ক্লিক করে।
এডবেন্টলে

এটি ফায়ারফক্সে মোটেই কাজ করে না।
ডাকাত

18

তুমি ব্যবহার করতে পার

window.clipboardData.getData('Text')

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


4
লিঙ্কটি ঠিক কাজ করছে (আবার)
স্টেফানোস

4
জিরো ক্লিপবোর্ড আপনাকে কেবল ক্লিপবোর্ডে অনুলিপি করার অনুমতি দেয় , এটি থেকে পড়ে না।
ডিএসিমন

4

নিম্নলিখিতটি ক্লিপবোর্ড আপডেট করার পাশাপাশি আপনাকে নির্বাচিত সামগ্রী সরবরাহ করবে।

কপির ইভেন্টের সাথে উপাদান আইডি বেঁধে রাখুন এবং তারপরে নির্বাচিত পাঠ্যটি পান। আপনি পাঠ্যটি প্রতিস্থাপন বা সংশোধন করতে পারেন। ক্লিপবোর্ডটি পান এবং নতুন পাঠ্য সেট করুন। সঠিক ফর্ম্যাটিং পেতে আপনাকে টাইপটি "পাঠ্য / এইচএমটিএল" হিসাবে সেট করতে হবে। আপনি এটিকে উপাদানটির পরিবর্তে নথিতে আবদ্ধ করতে পারেন।

document.querySelector('element').bind('copy', function(event) {
  var selectedText = window.getSelection().toString(); 
  selectedText = selectedText.replace(/\u200B/g, "");

  clipboardData = event.clipboardData || window.clipboardData || event.originalEvent.clipboardData;
  clipboardData.setData('text/html', selectedText);

  event.preventDefault();
});

24
এই সাইটে আপনাকে স্বাগতম! আমি সন্তুষ্ট যে আপনি একটি প্রশ্নের উত্তর দিয়ে অবদান রাখছেন। তবে দয়া করে সচেতন হন যে আপনার উত্তরটি আসলে ওপি-র প্রশ্নের উত্তর দেয় না। প্রশ্নটি ক্লিপবোর্ড থেকে সামগ্রী পুনরুদ্ধার করা এবং কোনও পৃষ্ঠা খোলার সময় এটি কোথাও আটকানো। এছাড়াও, যেহেতু প্রশ্নের কোনও জিকোয়ারি ট্যাগ নেই, তাই jQuery সহ উত্তরগুলিতে একটি নোট থাকা উচিত যা একটি লাইব্রেরি (jQuery) ব্যবহৃত হয়।
কারেলজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.