这个问题非常值得总结。我正在尝试做类似于Gmail的操作,如果您在文本字段中输入内容,网站会提示您确认是否要离开该页面。如何检查iframe中的文本框是否为空?
但是,如果问题中的文本字段在iframe中怎么办?很明显,我可以分配iframe一个id,但是有没有任何javascript命令或者可以检查iframe中的字段是否为空的东西?这甚至有可能吗?
编辑:嵌入iframe的iframe源和页来自同一个域。
这个问题非常值得总结。我正在尝试做类似于Gmail的操作,如果您在文本字段中输入内容,网站会提示您确认是否要离开该页面。如何检查iframe中的文本框是否为空?
但是,如果问题中的文本字段在iframe中怎么办?很明显,我可以分配iframe一个id,但是有没有任何javascript命令或者可以检查iframe中的字段是否为空的东西?这甚至有可能吗?
编辑:嵌入iframe的iframe源和页来自同一个域。
var value = document.getElementById('iframeID').contentDocument
.getElementById('theTextBoxId').value;
是的,这是可能的,你只需要获得访问文档与contentDocument
。
从DOM iframe元素中,脚本可以通过contentWindow属性访问包含的HTML页面的窗口对象。 contentDocument属性引用iframe中的文档元素(这相当于contentWindow.document),但IE8之前的Internet Explorer版本不支持。
尝试访问框架内容的脚本受到同源策略的约束,如果从其他域加载,则无法访问其他窗口对象中的大多数属性。
只需设置onbeforeunload
,你会仿佛iframe'd页面是顶级页面。如果尝试在父框架或子框架中离开,它将被确认中断。
使用jQuery你可以访问iframe中的内容:
$("#iFrame").contents().find("#text")
请评论,如果页面和iframe在同一域中或不是。附注:不需要在问题中签名... –
我的签名不好。是的,iframe和页面位于同一个域中。 – Charles