为什么当我试图从父页面调用iFrame中的函数时,我得到一个TypeError
Why am I getting a TypeError when trying to call a function in an iFrame from the parent page?
我有一个页面(父)与iFrame(子)嵌入其中,iFrame包含一个javascript函数,我需要从父调用。页面是在不同的域名,我不知道如果这是问题。这是我在父页面上的代码:
<script type="text/javascript">
function SaveChanges() {
var iFrame = document.getElementById("iframeSite");
iFrame.contentWindow.ExecuteSave();
}
</script>
…子页面上的代码:
<script type="text/javascript">
function ExecuteSave() {
alert("test1");
}
</script>
当我在父程序中调用"SaveChanges"时,它在试图调用"ExecuteSave"的那一行出错。
Uncaught TypeError: Property 'ExecuteSave' of object [object DOMWindow]
is not a function
我已经尝试了几乎所有的变化调用子iFrame的函数,但仍然收到相同的错误。
因为iframe在不同的域中,所以您不能在它们之间直接调用。这将违反同源策略。
是iframe和父元素通信的一种被认可的方式。它叫做postMessage()
希望这对你有帮助!
相关文章:
- TypeError:this.getAttribute不是一个函数-javascript
- 我收到此错误Uncatch TypeError:this.getElements不是一个函数
- TypeError:熟练程度不是一个函数,但它确实是
- jqGrid - TypeError: “#List”.jqGrid 不是一个函数
- TypeError: matrix[y].push 在尝试使用 javascript 创建 2D 数组时不是一个函数
- TypeError: e[h] 不是一个函数
- Infragistics igGrid Uncatch TypeError: undefined 不是一个函数
- Javascript:uncatch TypeError:undefined不是一个函数
- TypeError: require(..) 不是一个函数
- TypeError: undefined 不是一个函数(评估 'document.getsElementsByC
- “TypeError: req.flash 不是一个函数”,使用带有 nodejs、用户名和密码身份验证的护照
- TypeError:undefined不是一个对象(评估'c.trigger')
- Rails JavaScript 包含 TypeError:“null”不是一个对象(评估 'document.
- TypeError: jQuery(..).Pajinate 不是一个函数
- jquery 插件 Uncatch TypeError:对象不是一个函数
- browserSync + Gulp,得到错误 => TypeError: _.contains 不是一个函数
- TypeError: reporter.beforeLaunch 不是一个函数
- TypeError: jQuery.smoothScroll不是一个函数
- 为什么process.nextTick()在这个“假异步函数”中触发了一个TypeError,而setTimeout()
- JS TypeError:不是一个函数