এইচটিএমএল / ডিওএম দিয়ে ইভেন্টগুলি পরিচালনা করার কয়েকটি উপায় রয়েছে। সত্যিকারের কোন সঠিক বা ভুল উপায় নেই তবে বিভিন্ন পরিস্থিতিতে বিভিন্ন উপায় কার্যকর।
1: এইচটিএমএলে এটির সংজ্ঞা দেওয়া আছে:
<input id="clickMe" type="button" value="clickme" onclick="doFunction();" />
2: জাভাস্ক্রিপ্টে ইভেন্টটির জন্য এটি ডোম সম্পত্তিটিতে যুক্ত করেছে:
//- Using a function pointer:
document.getElementById("clickMe").onclick = doFunction;
//- Using an anonymous function:
document.getElementById("clickMe").onclick = function () { alert('hello!'); };
3: এবং জাভাস্ক্রিপ্ট ব্যবহার করে ইভেন্ট হ্যান্ডলারের সাথে একটি ফাংশন সংযুক্ত করা হচ্ছে:
var el = document.getElementById("clickMe");
if (el.addEventListener)
el.addEventListener("click", doFunction, false);
else if (el.attachEvent)
el.attachEvent('onclick', doFunction);
দ্বিতীয় এবং তৃতীয় উভয় পদ্ধতিই ইনলাইন / বেনামে ফাংশনগুলির জন্য অনুমতি দেয় এবং দস্তাবেজ থেকে উপাদানটি বিশ্লেষণের পরে উভয়ই ঘোষণা করতে হবে। প্রথম পদ্ধতিটি বৈধ এক্সএইচটিএমএল নয় কারণ অনক্লিক বৈশিষ্ট্যটি এক্সএইচটিএমএল স্পেসিফিকেশনে নেই।
1 ম এবং 2 য় পদ্ধতিগুলি পারস্পরিক একচেটিয়া, যার অর্থ একটি (2 য়) ব্যবহার অন্যটি (1 ম )টিকে ওভাররাইড করবে। 3 য় পদ্ধতি আপনাকে একই ইভেন্ট হ্যান্ডলারের সাথে আপনার পছন্দ মতো অনেকগুলি ফাংশন সংযুক্ত করার অনুমতি দেবে, এমনকি যদি প্রথম বা দ্বিতীয় পদ্ধতিটি খুব বেশি ব্যবহৃত হয়।
সম্ভবত, সমস্যাটি আপনার CapacityChart()ফাংশনের কোথাও রয়েছে । আপনার লিঙ্কটি দেখার পরে এবং আপনার স্ক্রিপ্টটি চালানোর পরে, ক্যাপাসিচার্ট () ফাংশনটি চালিত হয় এবং দুটি পপআপ খোলা হয় (স্ক্রিপ্ট অনুসারে একটি বন্ধ থাকে)। যেখানে আপনার নীচের লাইনটি রয়েছে:
CapacityWindow.document.write(s);
পরিবর্তে নিম্নলিখিত চেষ্টা করুন:
CapacityWindow.document.open("text/html");
CapacityWindow.document.write(s);
CapacityWindow.document.close();
সম্পাদনা করুন
যখন আমি আপনার কোডটি দেখেছি তখন আমার মনে হয়েছিল আপনি এটি IE এর জন্য বিশেষভাবে লিখছেন। অন্যরা যেমন উল্লেখ করেছে আপনার document.allসাথে রেফারেন্সগুলি প্রতিস্থাপন করতে হবে document.getElementById। তবে এর পরেও আপনার স্ক্রিপ্ট ঠিক করার কাজ থাকবে তাই আমি কোডটি ক্রস ব্রাউজারে পরিবর্তন করে নেওয়া যে কোনও ভুলকে আরও বিভ্রান্তির কারণ হতে পারে হিসাবে কমপক্ষে IE এ প্রথম কাজ করার পরামর্শ দিচ্ছি। এটি আইতে কাজ করার পরে আপনি কোডটি আপডেট করছেন এমন সময় এটি অন্য ব্রাউজারগুলিতে কাজ করছে কিনা তা বলা সহজ হবে।