我有几个iframe指向我网页上的外部网站。如果这些服务被中断或更改,我想隐藏这些iframe,而不是在我的页面上显示错误消息。 如果iframe已正确加载,有没有办法在Javascript中找到? 我添加了一个类来隐藏iframe,然后在iframe准备就绪时使用jQuery将其删除,如下所示:
$('#widget').ready(function () {
$('#widget').removeClass('hidden');
});
当我在iframe src中放入无效的网址时,它仍会删除隐藏的类,显示错误iframe。 我的问题是两个:
谢谢!
答案 0 :(得分:3)
您的问题可归结为:
如何通过Javascript检查网址是否存在且网站是否存在?
答案分为:
对于内部网址,请使用AJAX并检查响应代码:如果是2xx
或3xx
(例如200或302),则没问题。如果它是4xx
或5xx
(例如404或500)则不好。详情请阅读a similar answer。
对于外部网址,由于名为same-origin policy的安全措施,您无法执行此操作。
由于您似乎指向外部网址,因此我的建议如下:
创建服务器端组件(Servlet,RESTful WebService,Struts2操作等等......根据您使用的服务器端技术,根据您正在使用的服务器端技术)执行检查并返回流响应数据(如果有)和HTTP响应代码,您可以检查错误。然后从<iframe>
调用您的组件网址。
答案 1 :(得分:1)
你可能无法使用Javascript完成你想要的东西,你需要服务器端的东西,例如PHP。
但是,这里有一些有用的地方可以查找更多信息:
使用此JQuery函数加载iframe后可以运行代码:
$('#myIframe').load(function(){
//your code (will be called once iframe is done loading)
});
关于iframe加载,请查看this Stack Overflow question and answers。
要定位函数内的特定元素,请执行:
$('iframe').aFunction(function() { this.doSomething(); } );
查看this Stack Overflow question并回答关于&#34;此&#34;。