Javascript JQuery:使用JQuery选择iframe下的div
我正在尝试选择iframe中使用的div,但select指令始终返回空对象,请了解如何解决此问题:Javascript JQuery:使用JQuery选择iframe下的div,javascript,jquery,Javascript,Jquery,我正在尝试选择iframe中使用的div,但select指令始终返回空对象,请了解如何解决此问题: console.log($(this).contents().find('div')); jsiddle:Div是不可访问的,因为它不是DOM的一部分,而是iframe的一部分,iframe本身就由其他地方的不同DOM组成 为了获得iframe的div,需要获取iframe的所有内容,然后找到所需的div 下面的代码可以用来获取iframe内容,但它应该在同一个域中,否则将抛出跨域错误 $('i
console.log($(this).contents().find('div'));
jsiddle:Div是不可访问的,因为它不是DOM的一部分,而是
iframe
的一部分,iframe本身就由其他地方的不同DOM组成
为了获得iframe的div,需要获取iframe的所有内容,然后找到所需的div
下面的代码可以用来获取iframe内容,但它应该在同一个域中,否则将抛出跨域错误
$('iframe').contentWindow.document.body.innerHTML
或者,您可以在Javascript中使用跨文档消息传递,将消息发送到iFrame,并相应地响应iFrame
主页
myIframe.contentWindow.postMessage('hello', '*');
iframe
window.onmessage = function(e){
if (e.data == 'hello') {
alert('It works!');
}
};
有关更多详细信息,请参阅链接
还有一些插件可以更快地执行这类任务。您无法访问其他域的DOM,因为 根据该政策,web浏览器允许包含在第一个文件中的脚本 web页访问第二个web页中的数据,但仅当两个web页 页面具有相同的来源 此策略可防止一个页面上的恶意脚本获取 通过另一网页的 文档对象模型
当然,您可以在服务器端执行GET/POST请求来实现这一点。另外,除非另一个域具有标头,否则不能从javascript(ajax)执行GET/POST请求 可能重复我如何获取iframe的内容?谢谢,因此如果它不在同一个域中,则无法操作iframe下的div?有一些方法可用于操作iframe内容,但需要管理跨iframe和html的消息发送和接收