আইফ্রেমে jQuery এ একটি উপাদান নির্বাচন করা


122

আমাদের অ্যাপ্লিকেশনটিতে, আমরা একটি ওয়েব পৃষ্ঠাটি বিশ্লেষণ করি এবং এটি একটি আইফ্রেমে অন্য পৃষ্ঠায় লোড করি। লোড হওয়া পৃষ্ঠার সমস্ত উপাদানগুলির টোকেনিড রয়েছে। আমাকে সেই টোকেনিড-এস দ্বারা উপাদানগুলি নির্বাচন করতে হবে। মানে - আমি প্রধান পৃষ্ঠার একটি উপাদানটিতে ক্লিক করি এবং আইফ্রেমে পৃষ্ঠায় সংশ্লিষ্ট উপাদানটি নির্বাচন করি। JQuery এর সহায়তায় আমি এটি নিম্নলিখিত উপায়ে করছি:

function selectElement(token) {
     $('[tokenid=' + token + ']').addClass('border'); 
}

তবে এই ফাংশনটির সাহায্যে আমি কেবলমাত্র বর্তমান পৃষ্ঠায় উপাদানগুলি নির্বাচন করতে পারি, আইফ্রেমে নয়। কেউ কি আমাকে বলতে পারে যে আমি কীভাবে লোড হওয়া আইফ্রেমে উপাদানগুলি নির্বাচন করতে পারি?

ধন্যবাদ।

উত্তর:


157
var iframe = $('iframe'); // or some other selector to get the iframe
$('[tokenid=' + token + ']', iframe.contents()).addClass('border');

এছাড়াও মনে রাখবেন যে srcএই আইফ্রেমে যদি কোনও সুরক্ষার কারণে কোনও অন্য ডোমেনের দিকে ইশারা করা হয় তবে আপনি জাভাস্ক্রিপ্টে এই আইফ্রেমের বিষয়বস্তু অ্যাক্সেস করতে পারবেন না।


8
মনে রাখবেন $ ('iframe') সরাসরি iframe ফেরত দেয় না। আপনার এটি অ্যারে থেকে টানতে হবে।
ম্যাককেলা

সাহায্য করার ইচ্ছুকতার জন্য ধন্যবাদ। তবে এটি কাজ করে বলে মনে হচ্ছে না।
সাইকেরো

3
@ সিসেরো, এটি কাজ করা উচিত। আপনি কি এই আইফ্রেমে গতিশীলভাবে তৈরি করছেন? ভুলে যাবেন না যে আপনি যদি সুরক্ষা কারণে এই আইফ্রামের এসসিআর উপাদানটি আপনার ডোমেনের চেয়ে অন্য ডোমেনের দিকে নির্দেশ করেন তবে আপনি এর সামগ্রীগুলি অ্যাক্সেস করতে পারবেন না।
দারিন দিমিত্রভ

আমি এটিকে অন্য ডোমেন থেকে নয় একই ফোল্ডার থেকে লোড করি। আইফ্রেমের বিষয়বস্তু গতিশীলভাবে উত্পন্ন করা হচ্ছে এবং সার্ভারে একটি ফাইল হিসাবে সংরক্ষণ করা হচ্ছে। তারপরে সেই ফাইলটি আইফ্রেমে লোড হচ্ছে।
সাইকেরো

@ সিসেরো, আমি আমার উত্তর আপডেট করেছি। পাশ করার চেষ্টা করুনiframe.contents()
দারিন দিমিত্রভ

52

পোস্টটি দেখে নিন: http://praveenbattula.blogspot.com/2009/09/access-iframe-content-using-jquery.html

$("#iframeID").contents().find("[tokenid=" + token + "]").html();

আপনার নির্বাচকটিকে অনুসন্ধানের পদ্ধতিতে রাখুন।

আপনার সার্ভার থেকে যদি iframe আসছে না তবে এটি সম্ভব হবে না। অনুমতি সম্পর্কে অন্য পোস্টে ত্রুটি অস্বীকারের বিষয়ে কথা বলা হয়েছে।

jQuery / জাভাস্ক্রিপ্ট: একটি iframe বিষয়বস্তু অ্যাক্সেস


এটি উপাদানটির এইচটিএমএল পাওয়ার ক্ষেত্রে কাজ করে তবে আমি কীভাবে নির্বাচিত উপাদানটিতে একটি সিএসএস শ্রেণি যুক্ত করতে পারি? ; ("# iframeDiv")। বিষয়বস্তু ()। সন্ধান ("[টোকেনিড =" + টোকেন + "]") add কাজ মনে হচ্ছে না।
সাইক্রো

1
আপনি কি কোনও অনুমতি ত্রুটি অস্বীকার পেয়েছেন? আপনি আমাকে ইফ্রেমে এইচটিএমএল দিতে পারেন?
কেভিন বোয়ারসক্স

নাহ, কোনও অনুমতি ইস্যু অস্বীকার করেছে।
সাইক্রো

20

যখন আপনার দস্তাবেজটি প্রস্তুত থাকে তার অর্থ এই নয় যে আপনার আইফ্রেমেও খুব প্রস্তুত
so

$(function() {
    $("#my-iframe").bind("load",function(){
        $(this).contents().find("[tokenid=" + token + "]").html();
    });
});

-3

যদি কেস কনসোলের মাধ্যমে আইফ্রেমে অ্যাক্সেস করে থাকে, যেমন ক্রোম ডেভ সরঞ্জামগুলি তখন আপনি কেবল ড্রপডাউন (চিত্র দেখুন) এর মাধ্যমে DOM অনুরোধের প্রসঙ্গটি নির্বাচন করতে পারেন।

Chrome ডি সরঞ্জাম - আইফ্রেম নির্বাচন করা


-9

এখানে কেবল পাত্রে ডিভ টেনে আনেযোগ্য করতে এটি করার জন্য এখানে সহজ জিকুয়েরি:

$("#containerdiv div").draggable( {containment: "#containerdiv ", scroll: false} );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.