কীভাবে jquery ব্যবহার করে আইফ্রেম প্যারেন্ট পৃষ্ঠায় অ্যাক্সেস করবেন?


267

আমার একটি আইফ্রেমে রয়েছে এবং প্যারেন্ট উপাদানগুলিতে অ্যাক্সেস পেতে আমি নিম্নলিখিত কোডটি প্রয়োগ করেছি:

window.parent.document.getElementById('parentPrice').innerHTML

Jquery ব্যবহার করে কীভাবে একই ফলাফল পাবেন?
আপডেট : বা jquery ব্যবহার করে আইফ্রেম প্যারেন্ট পৃষ্ঠায় অ্যাক্সেস করবেন কীভাবে?


উত্তর:


489

আইফ্রেম ব্যবহারের পিতামাতার সন্ধানের জন্য:

$('#parentPrice', window.parent.document).html();

$ () মোড়কের জন্য দ্বিতীয় প্যারামিটারটি সেই প্রসঙ্গে যা অনুসন্ধান করতে হবে। এটি নথিতে ডিফল্ট।


18
শীতল - তিনি আপনাকে ধন্যবাদ দেওয়ার আগে আপনি ধন্যবাদ স্বীকার করেছেন। টাইমজোনগুলির সাথে স্ট্যাকওভারফ্লো সমস্যা আছে?
বেলুগাবব

21
আপনি এছাড়াও করতে পারেন: $ (উইন্ডো.প্যারেন্ট.ডোকামেন্ট) .ফাইন্ড ("# প্যারেন্টপ্রিস") h html ();
jhorback

@বেগবাবব এটি একটি উইজার্ডের দোষ।
এরিক এসকোবেডো

1
যারা উইন্ডো.ওপেন দিয়ে একটি উইন্ডয়েড চালু করেছিলেন, তাদের পুরানো জেএস স্ট্যান্ডার্ড উইন্ডো.ওপেনার.ডোকামেন্টটি ভুলে যাবেন না। $ ("# #Div", window.opener.docament) কাজ করে।
jjohn

2
এটি কেবল তখনই কাজ করবে যদি iframe এর উত্সটিতে jQuery লোড থাকে। আমার অভিজ্ঞতায়, iframe উত্সে jQuery থাকবে না তবে পিতামাতার jQuery ফাংশনগুলির মধ্যে একটি কল করার প্রয়োজন প্রায়শই প্রয়োজন। এই ব্যবহারটি করার জন্য: উইন্ডো ডকুমেন্ট $
ডেভিড কিনকিয়েড

39

কীভাবে jquery ব্যবহার করে আইফ্রেম প্যারেন্ট পৃষ্ঠায় অ্যাক্সেস করবেন

window.parent.document।

jQuery জাভাস্ক্রিপ্টের শীর্ষে একটি গ্রন্থাগার এটির জন্য সম্পূর্ণ প্রতিস্থাপন নয়। আপনাকে প্রতি শেষ জাভাস্ক্রিপ্ট এক্সপ্রেশনটি $ এর সাথে জড়িত কিছু দিয়ে প্রতিস্থাপন করতে হবে না $


6
+1 টি। jQuery দুর্দান্ত, তবে সাধারণ সমস্যার প্রচুর উত্তর বলে মনে হচ্ছে 'jQuery ব্যবহার করুন'। আপনি যদি যাইহোক লাইব্রেরিটি লোড করছেন তবে ঠিক আছে, তবে এটি একটি কাজ লোড করবেন না। এছাড়াও, লোকেরা জেএস পারফেক্ট সম্পর্কে উদ্বিগ্ন বলে মনে হচ্ছে, তারপরে এপিআই ছাড়াই সহজেই (এবং সম্ভবত দ্রুত) কাজগুলি করার জন্য জেএসের শীর্ষে একটি API ব্যবহার করুন use
গ্রান্ট ওয়াগনার

1
@ গ্রান্ট যদিও আমি jQuery ব্রাউজারগুলির অভ্যন্তরে নেটিভ কোড হওয়ার স্বপ্ন দেখি।
ড্যান ব্লাউস

3
@ ব্লোস্কি: এটাই আমার দুঃস্বপ্ন! jQuery একটি প্রচুর জটিল এবং ভঙ্গুর কোড রয়েছে যা "আমি যা বলতে চাইছি তা কর" কোড যা কোনও অফিসিয়াল এপিআইতে রাখা সম্পূর্ণরূপে অনুপযুক্ত।
বোবিনস

1
@ ববিন্স: স্পষ্টতই, আপনার সবসময় জাভাস্ক্রিপ্টকে jQuery দিয়ে প্রতিস্থাপন করা উচিত । এটা বেকন মত; এমন পরিস্থিতি নেই যেখানে কম ভাল। ;)
মেগাওয়াট

2
ওপিতে ইতিমধ্যে উইন্ডো.প্যারেন্ট.ডোকমেন্ট ছিল, সুতরাং এটি কোনও উত্তর দেয় না। এবং কল্পনা করুন যে নির্বাচকের যুক্তি কোনও উপাদানটির আইডি থেকে অনেক বেশি জটিল, এমন একটি পরিস্থিতিতে যেখানে jQuery খুব সহজেই কার্যকর। আমার মনে হচ্ছে প্রশ্নটি "আমি ফরাসী ভাষায় 'হ্যালো' কীভাবে বলব?" এবং এই উত্তরটি "জার্মান কথা বলুন"।
গ্র্যান্টপর্কস

13

আপনার যদি প্যারেন্ট ডকুমেন্টে jQuery উদাহরণ খুঁজে পেতে প্রয়োজন (যেমন, প্লাগ-ইন দ্বারা সরবরাহিত কোনও ইউটিলিটি ফাংশনটি কল করার জন্য) এই বাক্য গঠনগুলির একটি ব্যবহার করুন:

  • window.parent.$
  • window.parent.jQuery

উদাহরণ:

window.parent.$.modal.close();

jQuery windowবস্তুর সাথে সংযুক্ত হয়ে যায় এবং window.parentএটিই।


আমি আমার আইফ্রেমটি ব্যবহারকারীর নিয়ন্ত্রণের মতো ব্যবহার করছি। এটি আমাকে এটিকে সুন্দর এবং পরিষ্কার রাখতে দেয়।
ড্যান র্যান্ডলফ

11

আপনি window.parentএই জাতীয় ব্যবহার করে একটি আইফ্রেমের মধ্যে থেকেই প্যারেন্ট উইন্ডোর উপাদানগুলি অ্যাক্সেস করতে পারেন :

// using jquery    
window.parent.$("#element_id");

যা একই:

// pure javascript
window.parent.document.getElementById("element_id");

এবং যদি আপনার একাধিক নেস্টেড ইফ্রেমেস থাকে এবং আপনি যদি শীর্ষতম আইফ্রেমে অ্যাক্সেস করতে চান তবে আপনি এটির window.topমতো ব্যবহার করতে পারেন :

// using jquery
window.top.$("#element_id");

যা একই:

// pure javascript
window.top.document.getElementById("element_id");

7

প্যারেন্ট উইন্ডোতে:

<script>
function ifDoneChildFrame(val)
{
   $('#parentPrice').html(val);
}
</script>

এবং iframe src ফাইলটিতে:

<script>window.parent.ifDoneChildFrame('Your value here');</script>

5

হ্যাঁ এটি আমার পক্ষেও কাজ করে।

দ্রষ্টব্য: আমাদের উইন্ডো.প্যারেন্ট.ডোকমেন্ট ব্যবহার করা দরকার

    $("button", window.parent.document).click(function()
    {
        alert("Functionality defined by def");
    });

5

এটি আমার জন্য সামান্য মোচড় দিয়ে কাজ করছে। আমার ক্ষেত্রে আমাকে পপআপ জেএস থেকে প্যারেন্ট উইন্ডো ফর্মের মানটি তৈরি করতে হবে।

তাই আমি ব্যবহার করেছি $('#ee_id',window.opener.document).val(eeID);

চমৎকার !!!


3

এখানে খেলায় একটু দেরি হতে পারে তবে আমি এই চমত্কার jQuery প্লাগইনটি https://github.com/mkdynamic/jquery-popupwindow সন্ধান করেছি । এটি মূলত একটি অনলোড কলব্যাক ইভেন্ট ব্যবহার করে, তাই এটি মূলত শিশু উইন্ডোটি বন্ধ করার জন্য শোনায় এবং সেই সময়ে প্রয়োজনীয় কোনও জিনিস সম্পাদন করবে। সুতরাং পিতামাতার কাছে ফিরে যাওয়ার জন্য শিশু উইন্ডোতে কোনও জেএস লিখার দরকার নেই।


1

এগুলি করার একাধিক উপায় রয়েছে।

আমি) সরাসরি প্রধান পিতামাতাদের পান।

এক্সা জন্য। আমি আমার সন্তানের পৃষ্ঠাটি তখন ইফ্রেমে প্রতিস্থাপন করতে চাই

var link = '<%=Page.ResolveUrl("~/Home/SubscribeReport")%>';
top.location.replace(link);

এখানে শীর্ষ স্থানীয় স্থানটি সরাসরি পিতামাতাকে পেয়ে যায়।

দ্বিতীয়) পিতা-মাতা একের পর এক পান,

var element = $('.iframe:visible', window.parent.document);

এখানে আপনার যদি আরও একটি iframe থাকে তবে সক্রিয় বা দৃশ্যমান একটি নির্দিষ্ট করুন।

আপনি আরও বাবা-মা পাওয়ার জন্য এগুলি করতে পারেন,

var masterParent = element.parent().parent().parent()

III) আইডেন্টিফায়ার দ্বারা পিতামাতাকে পান।

var myWindow = window.top.$("#Identifier")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.