从iframe中获取iframe属性的值
Get Value of iframe Attribute from Within That iframe
我有一个iframe,它具有自定义的data-*
属性,该属性接受select标记中选项的值。我试图通过引用iframe属性,在iframe中呈现的表单中检索这个data-id
的值。
编辑:我的iframe和原始DOM在同一个域上
我的表格:
<select id="option-dropdown">
<option value="opt-1">Option 1</option>
<option value="opt-2">Option 2</option>
</select>
提取所选选项的脚本:
var optionSelected = $('#option-dropdown').val();
在这里,我的iframe是用数据id声明的:
'<iframe id="edit-iframe" data-id="' + optionSelected + '" src="/somePage + '"></iframe>'
最后是我在iframe中呈现的形式。此表单是否可以引用iframe的data-id
?
<form action="/someAction" method="post>
<input id="input-1" value="optionSelected"/>
<input id="input-2" value="someOtherValue"/>
<button id="save" >Save</button>
</form>
不,这将是跨站点脚本。
基本上,来自一个域的javascript无法访问另一个域,而不会出现各种潜在问题,因此它会被浏览器阻止。
你能做到这一点的唯一方法是同时拥有源和目标,并确保它们在同一个域上,在这种情况下,你可能不需要IFrame。
使用window.opener
。例如,在iframe:window.opener.document.getElementById('edit-iframe').getAttribute('data-id')
内部
(当然,假设两个页面都在同一个域上)
由于我的iframe源与我的原始页面在同一个域上,我可以使用以下方法检索我的ifame属性的值:
var optionSelected = window.frameElement.getAttribute("data-id");
尽管我确实同意@Toni Leigh的观点,即我可能一开始就不需要iframe,但就目前而言,上述方法会很好。
相关文章:
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 更改多个 iframe 中的文本框属性
- 如何在 iframe 中创建 HTML5 数据属性
- 单击没有 src 属性的 iframe 中的元素
- 取消 iframe 中具有 target=“_parent” 属性的链接事件
- 为什么当我尝试为iframe-src属性构建URL时,AngularJS会抛出错误
- Displaynone属性停止在Firefox中播放youtube iframe
- 占位符属性嵌入IE中的iframe时不起作用
- 可以't使用iframe获取占位符属性以在IE中工作
- 如何获得"src”;来自多个嵌套iframe源的属性
- 使用 jquery 更改 iframe 属性
- 如何通过Javascript获取iframe属性
- 跨域获取iframe javascript内部的iframe属性
- Iframe属性onload被调用多次
- 从内部赋予iframe属性
- 从特定iframe本身中呈现的文档设置iframe属性
- 从JQuery创建iframe -属性不工作,为什么不呢?
- 从iframe中获取iframe属性的值
- 如何通过JQuery添加不会验证为HTML5的iFrame属性