我使用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无法加载。我要显示自定义消息。
现在,如果我使用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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。