sit*_*ear 3 javascript iframe function parent
Hello StackOverflow社区,
我遇到了我<iframe>和JavaScript 的问题.假设我的body.html中有一个index.html iframe.内index.html我有这样的<head>标签:
<script type="text/javascript">
function alertTest() {
alert("Testing");
}
</script>
Run Code Online (Sandbox Code Playgroud)
在iframe中src="iframe.htm"(该位置与index.html属于同一个域).在那个iframe.htm页面中我有:
<a href="javascript:void(0);" onclick="window.parent.alertTest();">Click here.</a>
Run Code Online (Sandbox Code Playgroud)
问题是它没有加载提醒,并且在谷歌浏览器中返回错误:
"未捕获的TypeError:对象[对象DOMWindow]的属性'alertTest'不是函数
我已经试过window.parent.alertTest();,window.top.alertTest();,top.alertTest();,parent.alertTest();和几乎所有想出了在我搜索了类似的问题.
您似乎无法从位于所述非iframe内的iframe调用位于非iframe中的函数.
请帮忙!
PS基本上在实际的最终结果中我试图调用Lightbox打开图像功能(使用slimbox因为我能够用javascript而不是从href调用打开的图像功能).我还使用target ="_ parent"属性尝试了这个最终结果.
Dav*_*dom 12
尝试像这样定义你的函数:
window.alertTest = function () {
alert("Testing");
};
Run Code Online (Sandbox Code Playgroud)
......并以与问题相同的方式调用它;-)
在浏览器中,javascript中的所有内容都是window对象的子代.在表单中定义函数时,function funcName() { ... }您正在有效地定义window对象的私有方法.这在正常情况下无关紧要,因为所有代码都在范围内执行window,因此它可以访问这些私有方法.
但是当您尝试window从外部访问对象(即另一个window对象,即iframe的对象)时,您将无法访问它.如果您在window.funcName = function () { ... };创建特权方法的表单中定义函数,可以从外部访问,但也可以访问私有方法和属性(即脚本中的变量),因此当您尝试调用它时它将起作用来自你的iframe.
如果您想了解更多有关私人/特权成员及其可访问性的信息,请阅读此内容.
| 归档时间: |
|
| 查看次数: |
37641 次 |
| 最近记录: |