繁体   English   中英

jQuery iframe动态加载

[英]jquery iframe load dynamically

成功的ajax请求后,我正在使用以下jQuery脚本加载另一个URL。

$(document).ready(function() {
    var $loaded = $("#siteloader").data('loaded');
    if($loaded == false){
        $("#siteloader").load(function (){
            if(ad_id != undefined){ 
                var req_url = base_url+'ajax/saveclick/'+ad_id+'/';
                var preloader = $('#preloader');
                var reqloader = $('#reqloader');

                $.ajax({
                    url: req_url,
                    type: 'GET',
                    beforeSend: function() {
                        $(preloader).show();
                        $('#adloading').remove();
                    },
                    complete: function() {
                        $(preloader).hide();
                    },
                    success: function(result) {
                        $(reqloader).html(result);
                        $("#siteloader").data("loaded", "true");
                        $("#siteloader").attr("src", base_url+'userpanel/cpa/'+ad_id+'/');
                    }
                });
            }
            else{
                $('#reqloader').html('<span class="text-danger">Invalid Approach!</span>');
            }

        });
    }
});

<iframe src="remote_url" id="siteloader"></iframe>

我不想在iframe上更改src后再次运行ajax,我也试图通过$("#siteloader").data("loaded", "true");停止它$("#siteloader").data("loaded", "true");

请为我建议一个好的解决方案。 谢谢。

如果您只想执行一次“加载”处理程序
只需添加行

$("#siteloader").unbind('load');

成功回调中。

如果您希望在每次更改src时都执行“加载”处理程序,则可以执行以下操作:

$(document).ready(function () {
        $("#siteloader").load(function () {
            // Move the test in the event Handler ...
            var $loaded = $("#siteloader").data('loaded');
            if ($loaded == false) {
                if (ad_id != undefined) {
                    var req_url = base_url + 'ajax/saveclick/' + ad_id + '/';
                    var preloader = $('#preloader');
                    var reqloader = $('#reqloader');

                    $.ajax({
                        url: req_url,
                        type: 'GET',
                        beforeSend: function () {
                            $(preloader).show();
                            $('#adloading').remove();
                        },
                        complete: function () {
                            $(preloader).hide();
                        },
                        success: function (result) {
                            $(reqloader).html(result);
                            $("#siteloader").data("loaded", "true");
                            $("#siteloader").attr("src", base_url + 'userpanel/cpa/' + ad_id + '/');
                        }
                    });
                }
                else {
                    $('#reqloader').html('<span class="text-danger">Invalid Approach!</span>');
                }

            }
        });
    });

也许您的ad_id变量定义不正确/已更改...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM