通过getElementById()方法获取iframe元素时,可以看到获取的是整个iframe标签,此时是获取不到里面的a元素的;需要再往下找iframe里的document元素。
获取a元素失败
所以,要改变iframe标签里的元素属性,需要获取iframe下的document元素。
用.contentWindow.document 或者 .contentDocument 来获取。
<iframe id="bpmIframe" :src="src" />mounted() {const iframe = document.querySelector('#bpmIframe')// 处理兼容行问题if (iframe.attachEvent) {// IE下iframe.attachEvent('onload', () => {// 获取到iframe的dom元素后要再往下获取子窗口的document对象(contentWindow.document)进行操作document.getElementById('bpmIframe').contentWindow.document.getElementsByClassName('fa-close')[0].onclick = function() {window.history.back()}})} else {iframe.onload = () => {document.getElementById('bpmIframe').contentWindow.document.getElementsByClassName('fa-close')[0].onclick = function() {window.history.back()}}}}