获取 iframe 内点击标签的父级
Get parent of clicked tag inside of iframe
我有一个包含HTML页面的iframe。现在我想获取单击的父项的类。
这是我的 ifram:
<iframe src="//example.com" id="frame" ></iframe>
这是 CSS:
#frame{ width:380px; height:420px;}
这是我的脚本:
$(document).ready(function() {
var iframe = document.getElementById('frame');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document.body;
$(innerDoc).on('click', function(e) {
var thisID = ((e.target).id);
alert(thisID);
alert(innerDoc.getElementById(thisID));
$(thisID).click(function() {
var Allclassnames = $(thisID).parent();
console.log(Allclassnames);
});
});
});
但它返回的项目仅被单击。如何修复?
演示:演示
NOTE
:这些在同一个域中。也许下面DEMO
由于这个原因不起作用。但我确信我的 HTML 与我的网站位于同一域内。谢谢。
将沙盒属性添加到 iframe
<iframe src="/example.html" id="frame" sandbox="allow-scripts allow-same-origin"></iframe>
将脚本更改为
<script>
$('#frame').load(function() {
$('#frame').contents().on('click', function(e) {
var thisID = ((e.target).id);
alert(thisID);
alert($('#'+thisID,this));
$('#'+thisID,this).click(function() {
var Allclassnames = $(this).parent();
console.log(Allclassnames);
});
});
});
</script>
确保帧文档中的每个元素都有一些 id,否则 alert(( 可能会抛出错误。
要查看 iframe 的控制台消息,您需要从范围下拉列表中更改范围,它位于控制台选项卡中,除了 chrome 开发人员工具中的过滤器图标外。
除非iframe
与父文档位于同一域中,否则无法与该内容进行交互。
看:
https://en.wikipedia.org/wiki/Same-origin_policy
相关文章:
- iframe正在添加标签,需要删除它们
- 获取 iframe 内点击标签的父级
- 仅将元素附加到页面的正文标签,而不添加到iframe facebook、google+、twister
- 访问动态创建的iframe内容/元素,如文本框,来自JavaScript的标签
- 为什么我的 iframe 标签不起作用
- 谷歌浏览器的“新标签”iframe如何工作
- Iframe 不适用于表单中的标签
- Javascript 从 iframe 内部的页面获取正文标签
- 如何在新标签页或窗口中打开iframe链接
- 无法添加 Youtube iframe 标签
- 在新标签页中打开 iFrame 链接
- 为什么 jQuery 在使用样式标签填充 iframe 时会删除正文和头部标签,但不能没有样式标签
- 页面总是刷新(浏览器中的标签总是显示活动圆圈),这是因为我使用iframe
- Youtube iFrame嵌入式视频跟踪-谷歌标签管理器
- iframe更改源时,Pathjs标签路由不起作用
- 不同域上IFrame中的谷歌标签管理器
- tinymce不适用于<iframe>标签
- 使用jQuery删除iframe中的body标签
- 获取iframe内的标签
- 在iFrame中设置基本标签,在域名URL中设置几个部分