这个问题几乎总结了一下。我正在尝试执行类似于Gmail的操作,如果您在文本字段中输入了内容,则网站会提示您确认是否要离开该页面。
但是,如果相关的文字字段位于iframe中呢?显然我可以为iframe分配一个id,但是有没有javascript命令或者可以检查iframe中的字段是否为空的东西?这甚至可能吗?
修改:嵌入iframe的iframe源和页面来自同一个域。
答案 0 :(得分:2)
var value = document.getElementById('iframeID').contentDocument
.getElementById('theTextBoxId').value;
是的,有可能,您只需要使用<iframe>
访问contentDocument
文档。
从DOM iframe元素,脚本可以通过contentWindow属性访问包含的HTML页面的窗口对象。 contentDocument属性引用iframe中的文档元素(这相当于contentWindow.document),但IE8之前的Internet Explorer版本不支持。
尝试访问框架内容的脚本受制于同源策略,如果从其他域加载,则无法访问其他窗口对象中的大多数属性。
答案 1 :(得分:1)
只需设置onbeforeunload
,就好像iframe的页面是顶级页面一样。如果您尝试在父框架或子框架中导航,它将被确认中断。
答案 2 :(得分:1)
使用JQuery,您可以访问iframe内容:
$("#iFrame").contents().find("#text")