1.iframe下的iframe,无法获取到节点
如下图:
无法通过 document.getElementByClassName("ke-content") 或者 $(".ke-content") 的方式获取到图中的body节点;
正确的获取方式:
document.getElementsByClassName("ke-edit-iframe")[0].contentWindow.document.body
关键在于 contentWindow 属性,先获取到内部 iframe 里面的window对象,再通过这个对象,获取到里面的DOM元素。
2.内部的 iframe 中的方法,无法调用到外部定义的方法
假如在内部的 iframe 中的元素存在方法,如:
<div name="titleTxt" onfocus="txtFocus(this)" onblur="txtBlur(this)" ></div>等,将无法找到在外部定义的 txtFocus() 等方法。
处理这种问题的方式,就是动态插入 js 。
如上图中的方法,看图:
使用createElement 创建 script 元素,再添加到页面中。
(注意:直接插入到页面是无效的,一定要使用 createElement 创建 script 元素。)
然后就可以调用到写在other.js 中的 txtFocus() 等方法了