কীভাবে বর্তমান স্ক্রিপ্ট উপাদানটি পাবেন:
1. ব্যবহার করুন document.currentScript
document.currentScript
<script>
যার স্ক্রিপ্টটি বর্তমানে প্রক্রিয়াজাত হচ্ছে সেই উপাদানটি ফিরিয়ে দেবে ।
<script>
var me = document.currentScript;
</script>
উপকারিতা
- সহজ এবং স্পষ্ট। নির্ভরযোগ্য।
- স্ক্রিপ্ট ট্যাগটি পরিবর্তন করার দরকার নেই
- অ্যাসিনক্রোনাস স্ক্রিপ্ট (
defer
এবং async
) এর সাথে কাজ করে
- স্ক্রিপ্টগুলি গতিশীল sertedোকানো দিয়ে কাজ করে
সমস্যা
- পুরানো ব্রাউজার এবং আইই তে কাজ করবে না।
- মডিউল নিয়ে কাজ করে না
<script type="module">
২. আইডি দ্বারা স্ক্রিপ্ট নির্বাচন করুন
স্ক্রিপ্টটিকে একটি আইডি বৈশিষ্ট্য দেওয়া আপনাকে ব্যবহারের মধ্য থেকে সহজেই আইডি দ্বারা এটি নির্বাচন করতে দেয় document.getElementById()
।
<script id="myscript">
var me = document.getElementById('myscript');
</script>
উপকারিতা
- সহজ এবং স্পষ্ট। নির্ভরযোগ্য।
- প্রায় সর্বজনীন সমর্থিত
- অ্যাসিনক্রোনাস স্ক্রিপ্ট (
defer
এবং async
) এর সাথে কাজ করে
- স্ক্রিপ্টগুলি গতিশীল sertedোকানো দিয়ে কাজ করে
সমস্যা
- স্ক্রিপ্ট ট্যাগে একটি কাস্টম বৈশিষ্ট্য যুক্ত করা প্রয়োজন
id
বৈশিষ্ট্য কিছু প্রান্তের ক্ষেত্রে কিছু ব্রাউজারে স্ক্রিপ্টগুলির জন্য অদ্ভুত আচরণের কারণ হতে পারে
৩. কোনও data-*
বৈশিষ্ট্য ব্যবহার করে স্ক্রিপ্টটি নির্বাচন করুন Select
স্ক্রিপ্টটিকে একটি data-*
বৈশিষ্ট্য দেওয়া আপনাকে এটিকে সহজেই তার মধ্যে থেকে নির্বাচন করতে দেয়।
<script data-name="myscript">
var me = document.querySelector('script[data-name="myscript"]');
</script>
পূর্ববর্তী বিকল্পের তুলনায় এর কয়েকটি সুবিধা রয়েছে।
উপকারিতা
- সহজ এবং স্পষ্ট।
- অ্যাসিনক্রোনাস স্ক্রিপ্ট (
defer
এবং async
) এর সাথে কাজ করে
- স্ক্রিপ্টগুলি গতিশীল sertedোকানো দিয়ে কাজ করে
সমস্যা
- স্ক্রিপ্ট ট্যাগে একটি কাস্টম বৈশিষ্ট্য যুক্ত করা প্রয়োজন
- এইচটিএমএল 5, এবং
querySelector()
সমস্ত ব্রাউজারে অনুগত নয়
id
অ্যাট্রিবিউটটি ব্যবহার করার চেয়ে কম ব্যাপকভাবে সমর্থিত
- প্রান্ত মামলা
<script>
সঙ্গে প্রায় পাবেন id
।
- অন্য উপাদানের পৃষ্ঠায় একই ডেটা বৈশিষ্ট্য এবং মান থাকলে বিভ্রান্ত হতে পারে get
৪. এসসিআর দ্বারা স্ক্রিপ্টটি নির্বাচন করুন
ডেটা অ্যাট্রিবিউট ব্যবহার করার পরিবর্তে, আপনি উত্স অনুসারে স্ক্রিপ্টটি চয়ন করতে নির্বাচকটি ব্যবহার করতে পারেন:
<script src="//example.com/embed.js"></script>
এম্বেড.জেএস এ:
var me = document.querySelector('script[src="//example.com/embed.js"]');
উপকারিতা
- বিশ্বাসযোগ্য
- অ্যাসিনক্রোনাস স্ক্রিপ্ট (
defer
এবং async
) এর সাথে কাজ করে
- স্ক্রিপ্টগুলি গতিশীল sertedোকানো দিয়ে কাজ করে
- কোনও কাস্টম বৈশিষ্ট্য বা আইডি দরকার নেই
সমস্যা
- না না স্থানীয় স্ক্রিপ্ট কাজ
- উন্নয়ন এবং উত্পাদনের মতো বিভিন্ন পরিবেশে সমস্যা সৃষ্টি করবে
- স্থির এবং ভঙ্গুর। স্ক্রিপ্ট ফাইলের অবস্থান পরিবর্তন করার জন্য স্ক্রিপ্টটি পরিবর্তন করা দরকার
id
অ্যাট্রিবিউটটি ব্যবহার করার চেয়ে কম ব্যাপকভাবে সমর্থিত
- আপনি একই স্ক্রিপ্টটি দু'বার লোড করলে সমস্যা দেখা দেবে
৫. আপনি চাইলে এটির জন্য সমস্ত স্ক্রিপ্টে লুপ করুন
আমরা প্রতিটি স্ক্রিপ্টের উপাদানটি লুপ করতে পারি এবং আমরা যা চাই তা চয়ন করতে প্রতিটি স্বতন্ত্রভাবে পরীক্ষা করতে পারি:
<script>
var me = null;
var scripts = document.getElementsByTagName("script")
for (var i = 0; i < scripts.length; ++i) {
if( isMe(scripts[i])){
me = scripts[i];
}
}
</script>
এটি আমাদের পুরানো ব্রাউজারগুলিতে আগের উভয় কৌশল ব্যবহার করতে দেয় querySelector()
যা গুণাবলীর সাথে ভাল সমর্থন করে না । উদাহরণ স্বরূপ:
function isMe(scriptElem){
return scriptElem.getAttribute('src') === "//example.com/embed.js";
}
এটি যেভাবেই গ্রহণ করা হোক না কেন তার সুবিধাগুলি এবং সমস্যাগুলির উত্তরাধিকারী হয় তবে querySelector()
পুরানো ব্রাউজারগুলিতে এটি নির্ভর করে না ।
The. শেষ সম্পাদিত স্ক্রিপ্টটি পান
যেহেতু স্ক্রিপ্টগুলি ধারাবাহিকভাবে কার্যকর করা হয়, তাই শেষ স্ক্রিপ্ট উপাদানটি প্রায়শই বর্তমান চলমান স্ক্রিপ্ট হবে:
<script>
var scripts = document.getElementsByTagName( 'script' );
var me = scripts[ scripts.length - 1 ];
</script>
উপকারিতা
- সহজ।
- প্রায় সর্বজনীন সমর্থিত
- কোনও কাস্টম বৈশিষ্ট্য বা আইডি দরকার নেই
সমস্যা
- না না অ্যাসিঙ্ক্রোনাস স্ক্রিপ্টের কাজ (
defer
& async
)
- না না পরিবর্তনশীল ঢোকানো স্ক্রিপ্ট সঙ্গে কাজ