jquery – 如果iframe src无法加载,则捕获错误 错误: – “拒绝在框架中显示”http://www.google.co.in/“

前端之家收集整理的这篇文章主要介绍了jquery – 如果iframe src无法加载,则捕获错误 错误: – “拒绝在框架中显示”http://www.google.co.in/“前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Knockout.js绑定iframe src标签(这将是相对于用户可配置的)。

现在,如果用户配置http://www.google.com(我知道它不会加载在iframe,这就是为什么我使用它为-ve场景),并且必须显示在IFrame。
但它抛出错误: –

Refused to display ‘07001’ in a frame because it
set ‘X-Frame-Options’ to ‘SAMEORIGIN’.

我有Iframe的以下代码: –

<iframe class="iframe" id="iframe" data-bind="attr: {src: externalAppUrl,height: iframeheight}">
    <p>Hi,This website does not supports IFrame</p>
</iframe>

我想要的是,如果url无法加载。我要显示自定义消息。

FIDDLE HERE

现在,如果我使用onload和onerror为: –

<iframe id="browse" style="width:100%;height:100%" onload="alert('Done')" onerror="alert('Failed')"></iframe>

它工作正常加载w3schools.com,但不是与google.com。

其次: – 如果我把它作为一个功能,尝试像我在我的小提琴做的,它不工作。

<iframe id="browse" style="width:100%;height:100%" onload="load" onerror="error"></iframe>

我不知道如何应该让它运行和捕获的错误

编辑: – 我已经看到Want to call a function if iframe doesn’t load or load’s问题在stackoverflow,但它显示错误的网站可以加载在iframe。

另外,我看了Stackoverflow iframe on load event
谢谢!!

解决方法

我认为你可以绑定iframe的 load事件,当iframe内容被完全加载时事件触发。

同时你可以启动一个setTimeout,如果iFrame被加载清除超时,或者让超时消失。

码:

var iframeError;

function change() {
    var url = $("#addr").val();
    $("#browse").attr("src",url);
    iframeError = setTimeout(error,5000);
}

function load(e) {
    alert(e);
}

function error() {
    alert('error');
}

$(document).ready(function () {
    $('#browse').on('load',(function () {
        load('ok');
        clearTimeout(iframeError);
    }));

});

演示:http://jsfiddle.net/IrvinDominin/QXc6P/

第二个问题

这是因为你错过了内联函数调用的括号;尝试改变这个:

<iframe id="browse" style="width:100%;height:100%" onload="load" onerror="error"></iframe>

进入:

<iframe id="browse" style="width:100%;height:100%" onload="load('Done func');" onerror="error('Failed function');"></iframe>

演示:http://jsfiddle.net/IrvinDominin/ALBXR/4/

猜你在找的jQuery相关文章