在离开页面之前加载iframe

时间:2015-02-02 09:14:30

标签: javascript jquery

我有这个问题:

用户点击指向其他页面的链接。发生此事件时,我想加载iframe。我需要在新页面开始加载之前加载iframe。

我该怎么做?

编辑:

我的代码是休闲的:

function letsDoThis(parameter)
{
    var iframe=document.createElement('iframe');
    iframe.src="http://xxxxxxxxx"+parameter;
    iframe.width='1';
    iframe.height='1';
    document.body.appendChild(iframe);
}
var a=$('#MY_BUTTON')[0].href;
$('#MY_BUTTON')[0].addEventListener('click',function(){letsDoThis(a);});

但是在这个解决方案中iframe每次都没有加载(有时候新页面开始加载太快)。

1 个答案:

答案 0 :(得分:0)

使用jQuery,您可以轻松解决此问题:

$('body').on('click', 'a#MY_BUTTON', function(e) {
    
    e.preventDefault();
    
    var url_a = $(this).attr('href');
    
    var ifr=$('<iframe/>', {
        id:'DynamicIframe',
        src:'http://stackoverflow.com/',
        style:'width:1px; height: 1px;',
        load:function(){
            console.log('iframe loaded!');
            //document.location.href = url_a;
            alert(url_a);
        }
    });
    
    $('body').append(ifr); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<a href='http://www.google.it/' id='MY_BUTTON' >Click!</a>

您应该更改所需的iframe传递参数的网址,如果有更多iframe和链接来控制,请通过类而非ID来管理所有内容