এই নিয়ে কুইরকসোডের একটি পোস্ট ছিল ।
যেহেতু পৃষ্ঠাটি এখন নষ্ট হয়ে গেছে এবং কেবল সংরক্ষণাগার.অর্গের মাধ্যমে অ্যাক্সেসযোগ্য তাই আমি এটি এখানে পুনরুত্পাদন করেছি:
আইফ্রেমগুলি
এই পৃষ্ঠায় আমি পৃষ্ঠাতে তারা চলছে সেখান থেকে iframes অ্যাক্সেস একটি সংক্ষিপ্ত বিবরণ দিতে। আশ্চর্যের বিষয় নয়, কিছু ব্রাউজার বিবেচনা রয়েছে।
একটি আইফ্রেম হ'ল একটি ইনলাইন ফ্রেম, এমন একটি ফ্রেম যা তার নিজস্ব ইউআরএল সহ সম্পূর্ণ পৃথক পৃষ্ঠা থাকা সত্ত্বেও অন্য কোনও HTML পৃষ্ঠার ভিতরে স্থাপন করা হয়। এটি ওয়েব ডিজাইনে খুব সুন্দর সম্ভাবনা দেয়। সমস্যাটি হল iframe অ্যাক্সেস করা, উদাহরণস্বরূপ এটিতে একটি নতুন পৃষ্ঠা লোড করা। কীভাবে এটি করা যায় এই পৃষ্ঠাটি ব্যাখ্যা করে।
ফ্রেম বা অবজেক্ট?
মৌলিক প্রশ্নটি হচ্ছে যদি আইফ্রেমে ফ্রেম হিসাবে দেখা যায় বা কোনও অবজেক্ট হিসাবে।
- ফ্রেম পৃষ্ঠাগুলির পরিচিতিতে যেমন ব্যাখ্যা করা হয়েছে , আপনি যদি ফ্রেম ব্যবহার করেন তবে ব্রাউজারটি আপনার (
top.frames[1].frames[2]এবং এ জাতীয়) জন্য একটি ফ্রেম স্তরক্রম তৈরি করে । আইফ্রেমে কি এই ফ্রেম শ্রেণিবিন্যাসের সাথে ফিট করে?
- অথবা ব্রাউজারটি যদি একটি আইফ্রেমকে কেবল অন্য কোনও অবজেক্ট হিসাবে দেখায়, এমন একটি বস্তু যা একটি এসসিআর সম্পত্তি হিসাবে ঘটে থাকে? সেক্ষেত্রে আমাদের একটি স্ট্যান্ডার্ড ডিওএম কল ব্যবহার করতে হবে (
document.getElementById('theiframe'))এটি অ্যাক্সেস করার মতো general
NAME বৈশিষ্ট্য
সর্বাধিক গুরুত্বপূর্ণ নিয়মটি হল যে কোনও আইফ্রেমে আপনি কোনও nameঅ্যাট্রিবিউট তৈরি করেন তা দেওয়া , এমনকি আপনি যদি কোনও ব্যবহার করেন তবে id।
<iframe src="iframe_page1.html"
id="testiframe"
name="testiframe"></iframe>
বেশিরভাগ ব্রাউজারের nameফ্রেম শ্রেণিবিন্যাসের iframe অংশ তৈরি করতে অ্যাট্রিবিউটের প্রয়োজন হয় । কিছু ব্রাউজারকে (উল্লেখযোগ্যভাবে মজিলা) idআইফ্রেমকে একটি অবজেক্ট হিসাবে অ্যাক্সেসযোগ্য করে তুলতে প্রয়োজন । Iframe এ দুটি বৈশিষ্ট্য নির্ধারণ করে আপনি আপনার বিকল্পগুলি খোলা রাখবেন। তবে এর nameচেয়ে অনেক বেশি গুরুত্বপূর্ণ id।
প্রবেশ
হয় আপনি আইটেম হিসাবে iframe অ্যাক্সেস এবং এর পরিবর্তন srcবা আপনি একটি ফ্রেম হিসাবে iframe অ্যাক্সেস এবং এটি পরিবর্তনlocation.href ।
document.getElementById ('iframe_id') s src = 'newpage.html'; ফ্রেম ['iframe_name']। অবস্থান.href = 'newpage.html'; ফ্রেম সিনট্যাক্সটি কিছুটা পছন্দনীয় কারণ অপেরা 6 এটি সমর্থন করে তবে অবজেক্ট সিনট্যাক্স নয়।
আইফ্রেমে অ্যাক্সেস করা হচ্ছে
সুতরাং সম্পূর্ণ ক্রস-ব্রাউজার অভিজ্ঞতার জন্য আপনার আইফ্রেমে একটি নাম দেওয়া উচিত এবং এটি ব্যবহার করা উচিত
frames['testiframe'].location.href
বাক্য গঠন. আমি যতদূর জানি এটি সর্বদা কাজ করে।
দস্তাবেজ অ্যাক্সেস করা হচ্ছে
আইফ্রেমের ভিতরে ডকুমেন্ট অ্যাক্সেস করা বেশ সহজ, যদি আপনি nameবৈশিষ্ট্যটি ব্যবহার করেন । আইফ্রেমে নথিতে লিঙ্কের সংখ্যা গণনা করতে, করুন
frames['testiframe'].document.links.length।
উত্পাদিত iframes
আপনি যখন ডাব্লু 3 সি ডোমের মাধ্যমে একটি আইফ্রেম তৈরি করেন তবে আইফ্রেমে তত্ক্ষণাত framesঅ্যারে প্রবেশ করা হয় না , এবংframes['testiframe'].location.href বাক্য কাজ করবে না। Iframe অ্যারে আপ করার আগে ব্রাউজারের একটু সময় প্রয়োজন, এমন সময় যা কোনও স্ক্রিপ্ট চলতে পারে না।
দ্য document.getElementById('testiframe').srcসিনট্যাক্স সব পরিস্থিতিতে কাজ করে জরিমানা।
targetএকটি লিঙ্ক অ্যাট্রিবিউট উত্পন্ন অনুরোধকে সঙ্গে পারেন কাজ করে না, অপেরা ছাড়া, যদিও আমি আমার আইফ্রেম উত্পন্ন উভয় একটি দিয়েছিলাম nameএবং একটিid ।
অভাব targetসমর্থনের অর্থ হ'ল জেনারেটেড আইফ্রেমের বিষয়বস্তু পরিবর্তন করতে আপনার অবশ্যই জাভাস্ক্রিপ্ট ব্যবহার করতে হবে, তবে যেহেতু এটি প্রথম স্থানে তৈরি করার জন্য আপনার যেভাবেই জাভাস্ক্রিপ্টের প্রয়োজন আছে, তাই আমি এটিকে তেমন সমস্যা হিসাবে দেখছি না।
Iframes এ পাঠ্য আকার
একটি কৌতূহলী এক্সপ্লোরার 6 কেবল বাগ:
আপনি যখন ভিউ মেনুটির মাধ্যমে পাঠ্যের আকার পরিবর্তন করেন, আইফ্রেমে পাঠ্যের মাপগুলি সঠিকভাবে পরিবর্তিত হয়। যাইহোক, এই ব্রাউজারটি মূল পাঠ্যে লাইন বিরতি পরিবর্তন করে না, যাতে পাঠ্যের অংশটি অদৃশ্য হয়ে যেতে পারে বা লাইনটি বিরতি ঘটতে পারে যখন লাইনটি এখনও অন্য শব্দ ধারণ করতে পারে।