কীভাবে আমি সনাক্ত করতে পারি যে একটি আইফ্রেম লোড হয়েছে কিনা?


101

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

আমার আছে

$('#MainPopupIframe').load(function(){
    console.log('load the iframe')
    //the console won't show anything even if the iframe is loaded.
})

এইচটিএমএল

<button id='click'>click me</button>

//the iframe is created after the user clicks the button.
<iframe id='MainPopupIframe' src='http://...' />...</iframe>

কোনও পরামর্শ?

যাইহোক, আমার iframe গতিশীল তৈরি করা হয়। এটি প্রাথমিক পৃষ্ঠা লোড দিয়ে লোড হয় না।


উত্তর:


185

আপনি এটি ব্যবহার করে দেখতে পারেন (ব্যবহার করে jQuery)

$(function(){
    $('#MainPopupIframe').load(function(){
        $(this).show();
        console.log('iframe loaded successfully')
    });
        
    $('#click').on('click', function(){
        $('#MainPopupIframe').attr('src', 'https://heera.it');    
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='click'>click me</button>

<iframe style="display:none" id='MainPopupIframe' src='' /></iframe>

jsfiddle ডেমো

আপডেট: প্লেইন ব্যবহারjavascript

window.onload=function(){
    var ifr=document.getElementById('MainPopupIframe');
    ifr.onload=function(){
        this.style.display='block';
        console.log('laod the iframe')
    };
    var btn=document.getElementById('click');    
    btn.onclick=function(){
        ifr.src='https://heera.it';    
    };
};
<button id='click'>click me</button>

<iframe style="display:none" id='MainPopupIframe' src='' /></iframe>

jsfiddle ডেমো

আপডেট: এছাড়াও আপনি এটি চেষ্টা করতে পারেন (গতিশীল iframe)

$(function(){
    $('#click').on('click', function(){
        var ifr=$('<iframe/>', {
            id:'MainPopupIframe',
            src:'https://heera.it',
            style:'display:none;width:320px;height:400px',
            load:function(){
                $(this).show();
                alert('iframe loaded !');
            }
        });
        $('body').append(ifr);    
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='click'>click me</button><br />

jsfiddle ডেমো


4
ভ্যানিলা দ্রবণটি দুর্দান্ত।
নিক

23
load()অবচয় করা হয়েছে, তবে এটি এজেক্স ফাংশনের সাথে বিরোধী ছিল। প্রস্তাবিত প্রতিস্থাপন সহজভাবে হয় on("load")। (দুর্ভাগ্যক্রমে,
ডকসগুলি

4
"ইফ্রেমে লড করুন" - আলফা |
মোহাম্মদ আবদুল মুজিব

4
@ মোহাম্মদ আব্দুল মুজিবকে ভাল ক্যাচ করুন, এটি এখন একটি ক্লাসিক :-)
দ্য আলফা

4
সংযুক্ত উপাদান তৈরির জন্য আমি এই পদ্ধতিটি আগে কখনও দেখিনি। প্রেমময়, এবং আমার জন্য সম্পূর্ণরূপে এটি সমাধান। চমৎকার কাজ!
অনাবশ্যক

2

আমি এটির মতো কল্পনা করি:

<html>
<head>
<script>
var frame_loaded = 0;
function setFrameLoaded()
{
   frame_loaded = 1;
   alert("Iframe is loaded");
}
$('#click').click(function(){
   if(frame_loaded == 1)
    console.log('iframe loaded')
   } else {
    console.log('iframe not loaded')
   }
})
</script>
</head>
<button id='click'>click me</button>

<iframe id='MainPopupIframe' onload='setFrameLoaded();' src='http://...' />...</iframe>

2

আপনি অনলোড লোড ইভেন্টটিও চেষ্টা করে দেখতে পারেন;

var createIframe = function (src) {
        var self = this;
        $('<iframe>', {
            src: src,
            id: 'iframeId',
            frameborder: 1,
            scrolling: 'no',
            onload: function () {
                self.isIframeLoaded = true;
                console.log('loaded!');
            }
        }).appendTo('#iframeContainer');

    };
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.