Javascript 如果未正确加载,则隐藏iFrame
我的页面上有几个指向外部网站的iFrame。如果这些服务被中断或更改,我希望隐藏这些iFrame,而不是在我的页面上显示错误消息。 有没有办法在Javascript中确定iframe是否已正确加载? 我添加了一个类来隐藏iframe,然后在iframe就绪时使用jQuery将其删除,如下所示:Javascript 如果未正确加载,则隐藏iFrame,javascript,jquery,iframe,Javascript,Jquery,Iframe,我的页面上有几个指向外部网站的iFrame。如果这些服务被中断或更改,我希望隐藏这些iFrame,而不是在我的页面上显示错误消息。 有没有办法在Javascript中确定iframe是否已正确加载? 我添加了一个类来隐藏iframe,然后在iframe就绪时使用jQuery将其删除,如下所示: $('#widget').ready(function () { $('#widget').removeClass('hidden'); }); 当我在iframe src中放入一个无效的URL
$('#widget').ready(function () {
$('#widget').removeClass('hidden');
});
当我在iframe src中放入一个无效的URL时,它仍然会删除隐藏的类,显示错误iframe。
我的问题有两个:
- 如果iframe已正确加载,如何使函数仅运行
- 我不想使用$('widget').ready,而是想使用$('iframe').ready一次针对所有iframe;如果我这样做,如何在函数中引用特定的iframe加载
谢谢 您可能无法使用Javascript完成您想要的事情,您需要服务器端的东西,例如PHP
但是,这里有一些有用的地方可以查找更多信息:
可以使用以下JQuery函数在加载iframe后运行代码:
$('#myIframe').load(function(){
//your code (will be called once iframe is done loading)
});
查看有关iframe加载的信息
要针对函数中的特定元素,请执行以下操作:
$('iframe').aFunction(function() { this.doSomething(); } );
查看并回答有关“此”的问题。您的问题可以归结为: 如何通过Javascript检查URL是否存在以及网站是否处于活动状态 答案分为:
- 对于内部URL,使用AJAX并检查响应代码:如果是
或2xx
(例如200或302),则可以。如果是3xx
或4xx
(例如404或500),则是坏的。阅读更多关于5xx
- 对于外部URL,由于名为的安全措施,您无法执行此操作
创建一个服务器端组件(Servlet、RESTful Web服务、Struts2操作等…根据您使用的服务器端技术,您可以选择什么)来为您执行检查,并返回一个流式响应,其中包含可以检查错误的数据(如果有)和HTTP响应代码。然后从
调用您的组件URL。我猜加载()
总是会发生,即使是在收到404或500的情况下,不是吗?不幸的是,由于某种原因,这两个建议似乎都不起作用。如果我使用load而不是ready,看起来函数有时运行,有时不运行,无法理解原因是什么。。。使用$('iframe')和this(或$(this))它永远不会运行。您需要检查iframe的src url。使用JS无法实现这一点。你的后端使用PHP吗?看起来不像我想的那么容易。。。我使用的是PHP和Zend Framework 2,如何检查URL是否存在?我不使用这些,所以我不知道。在搜索了类似的问题是否已经被询问和回答之后,您应该发布一个单独的问题,询问“如何联系并从PHP/ZendFramework2下载站点服务器端”。