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插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...