আমি আমার স্ক্রিপ্টটি ক্লিপবোর্ডের সামগ্রী সনাক্ত করতে এবং পৃষ্ঠাটি খোলার সময় এটি কোনও পাঠ্যের ক্ষেত্রে পেস্ট করার একটি উপায় জানতে চাই যা ব্যবহারকারীর কাছ থেকে কোনও ইনপুট নেই। এটা কিভাবে করা যাবে?
আমি আমার স্ক্রিপ্টটি ক্লিপবোর্ডের সামগ্রী সনাক্ত করতে এবং পৃষ্ঠাটি খোলার সময় এটি কোনও পাঠ্যের ক্ষেত্রে পেস্ট করার একটি উপায় জানতে চাই যা ব্যবহারকারীর কাছ থেকে কোনও ইনপুট নেই। এটা কিভাবে করা যাবে?
উত্তর:
window.clipboardData.getData('Text')
কিছু ব্রাউজারে কাজ করবে। তবে, অনেকগুলি ব্রাউজার যেখানে এটি কাজ করে তা ব্যবহারকারীরা তাদের ওয়েবপৃষ্ঠাটি ক্লিপবোর্ডে অ্যাক্সেস রাখতে চান কিনা তা সম্পর্কে অনুরোধ জানাবে।
এর মাধ্যমে নতুন ক্লিপবোর্ড এপিআই ব্যবহার করুন 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);
গুগল বিকাশকারী ডক্সে এপিআই এবং ব্যবহার সম্পর্কে আরও পড়ুন ।
setTimeout
, তারপরে পৃষ্ঠায় ফিরে ক্লিক করে।
তুমি ব্যবহার করতে পার
window.clipboardData.getData('Text')
আইইতে ব্যবহারকারীর ক্লিপবোর্ডের সামগ্রী পেতে। তবে, অন্য ব্রাউজারে আপনার সামগ্রীটি পেতে ফ্ল্যাশ ব্যবহার করতে হতে পারে, যেহেতু ক্লিপবোর্ডে অ্যাক্সেসের জন্য কোনও স্ট্যান্ডার্ড ইন্টারফেস নেই। আপনি এই প্লাগইনটি জিরো ক্লিপবোর্ড ব্যবহার করে দেখতে পারেন
নিম্নলিখিতটি ক্লিপবোর্ড আপডেট করার পাশাপাশি আপনাকে নির্বাচিত সামগ্রী সরবরাহ করবে।
কপির ইভেন্টের সাথে উপাদান আইডি বেঁধে রাখুন এবং তারপরে নির্বাচিত পাঠ্যটি পান। আপনি পাঠ্যটি প্রতিস্থাপন বা সংশোধন করতে পারেন। ক্লিপবোর্ডটি পান এবং নতুন পাঠ্য সেট করুন। সঠিক ফর্ম্যাটিং পেতে আপনাকে টাইপটি "পাঠ্য / এইচএমটিএল" হিসাবে সেট করতে হবে। আপনি এটিকে উপাদানটির পরিবর্তে নথিতে আবদ্ধ করতে পারেন।
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();
});