উত্তর:
var iframe = document.getElementById('iframeId');
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
আপনি আরও সহজভাবে লিখতে পারেন:
var iframe = document.getElementById('iframeId');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
এবং প্রথম বৈধ অভ্যন্তরীণ ডক ফিরে আসবে।
একবার আপনি অভ্যন্তরীণ ডকটি পেয়ে গেলে, আপনি কেবল তার অভ্যন্তরগুলিকে একইভাবে অ্যাক্সেস করতে পারবেন ঠিক যেমন আপনি আপনার বর্তমান পৃষ্ঠায় কোনও উপাদান অ্যাক্সেস করতে পারবেন। ( innerDoc.getElementById
... ইত্যাদি)
গুরুত্বপূর্ণ: নিশ্চিত করুন যে আইফ্রেমটি একই ডোমেনে রয়েছে, অন্যথায় আপনি এর অভ্যন্তরীণ প্রবেশাধিকার পেতে পারবেন না। এটি ক্রস-সাইট স্ক্রিপ্টিং হবে।
লোড হওয়ার পরে iframe অ্যাক্সেস করতে ভুলবেন না । JQuery ছাড়াই পুরানো তবে নির্ভরযোগ্য উপায়:
<iframe src="samedomain.com/page.htm" id="iframe" onload="access()"></iframe>
<script>
function access() {
var iframe = document.getElementById("iframe");
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
console.log(innerDoc.body);
}
</script>
window.parent.document.getElementById("framekit").contentWindow.CallYourFunction('pass your value')
CallYourFunction()
এটি পৃষ্ঠার ভিতরে ফাংশন এবং এতে ফাংশন ক্রিয়া
উপরের উত্তরগুলি জাভস্ক্রিপ্ট ব্যবহার করে ভাল সমাধান দিয়েছে। এখানে একটি সহজ jQuery সমাধান:
$('#iframeId').contents().find('div')
এখানে কৌতুকটি jQuery এর .contents()
পদ্ধতি, এর বিপরীতে .children()
যা কেবলমাত্র HTML উপাদানগুলি .contents()
পেতে পারে , পাঠ্য নোড এবং এইচটিএমএল উভয় উপাদানই পেতে পারে। এজন্য কেউ এটি ব্যবহার করে একটি আইফ্রেমের নথি সামগ্রী পেতে পারে।
JQuery সম্পর্কে আরও পড়ুন .contents()
:। বিষয়বস্তু ()
নোট করুন যে iframe এবং পৃষ্ঠা একই ডোমেনে থাকতে হবে।
অন্য কোনও উত্তরই আমার পক্ষে কাজ করছে না। আমি আমার আইফ্রেমের মধ্যে এমন একটি ফাংশন তৈরি করে শেষ করেছিলাম যা আমি খুঁজছিলাম সেই বস্তুটি ফিরিয়ে দেয়:
function getElementWithinIframe() {
return document.getElementById('copy-sheet-form');
}
তারপরে আপনি উপাদানটি পুনরুদ্ধার করতে সেই ফাংশনটিকে এমনভাবে কল করুন:
var el = document.getElementById("iframeId").contentWindow.functionNameToCall();
যদি ইফ্রেমে একই ডোমেইনে না থাকে তবে আপনি প্যারেন্টের কাছ থেকে এর ইন্টার্নাল অ্যাক্সেস পেতে পারবেন না তবে আপনি যদি আইফ্রেমের উত্স কোডটি সংশোধন করতে পারেন তবে আপনি যদি পিতা-মাতার উইন্ডোতে বার্তা প্রেরণের জন্য iframe দ্বারা প্রদর্শিত পৃষ্ঠাটি সংশোধন করতে পারেন, যা অনুমতি দেয় আপনি পৃষ্ঠাগুলির মধ্যে তথ্য ভাগ করে নিতে। কিছু উত্স:
নীচে কোড আপনাকে iframe ডেটা খুঁজে পেতে সহায়তা করবে।
let iframe = document.getElementById('frameId');
let innerDoc = iframe.contentDocument || iframe.contentWindow.document;