Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果未正确加载,则隐藏iFrame_Javascript_Jquery_Iframe - Fatal编程技术网

Javascript 如果未正确加载,则隐藏iFrame

Javascript 如果未正确加载,则隐藏iFrame,javascript,jquery,iframe,Javascript,Jquery,Iframe,我的页面上有几个指向外部网站的iFrame。如果这些服务被中断或更改,我希望隐藏这些iFrame,而不是在我的页面上显示错误消息。 有没有办法在Javascript中确定iframe是否已正确加载? 我添加了一个类来隐藏iframe,然后在iframe就绪时使用jQuery将其删除,如下所示: $('#widget').ready(function () { $('#widget').removeClass('hidden'); }); 当我在iframe src中放入一个无效的URL

我的页面上有几个指向外部网站的iFrame。如果这些服务被中断或更改,我希望隐藏这些iFrame,而不是在我的页面上显示错误消息。 有没有办法在Javascript中确定iframe是否已正确加载? 我添加了一个类来隐藏iframe,然后在iframe就绪时使用jQuery将其删除,如下所示:

$('#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
    3xx
    (例如200或302),则可以。如果是
    4xx
    5xx
    (例如404或500),则是坏的。阅读更多关于

  • 对于外部URL,由于名为的安全措施,您无法执行此操作

由于您似乎指向外部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下载站点服务器端”。