我有一个HTML页面说main.html
,其中iframe
(说id="myFrame"
)显示child.html
页面。 这两个页面的都有一个名为"隐藏框架"的按钮。这些按钮的onclick调用hideFrame()
JS函数,该函数在main.js
文件中声明。 hideFrame()
功能只是将myFrame
的显示更改为"无"。
function hideFrame(){
document.getElementById("myFrame").style.display = "none";
}
myFrame
位于main.html
文件中,因此调用main.html
函数时hideFrame()
中的按钮有效。框架被隐藏。但是,如果我从child.html
页面调用该函数,则无法正常工作。
如何访问此元素(myFrame
)表单child.html
页面?
答案 0 :(得分:1)
我不会使用iFrame,而是使用jquery从其他文件中加载html文件的片段。
如果无法做到这一点,您可以将Javascript代码注入引用父对象中的对象的子框架中。例如:
子:
[0-9\-.]+\s|[0-9\-.]+$
父:
<script>
var x;
</script>
答案 1 :(得分:1)
花了一段时间才明白你在说什么。据我所知,您希望从iframe内部访问顶部窗口中的元素。以下是访问父窗口的内容:
var _parent = window.parent,
_parent_dom = _parent.document;
然后从父页面访问元素(在本例中为#myFrame
):
var my_frame = _parent_dom.getElementById("myFrame");
答案 2 :(得分:1)
你应该使用main.html的窗口对象来分配函数。而不是
function hideFrame(){
document.getElementById("myFrame").style.display = "none";
}
你会做类似
的事情window.hideFrame = function(){
document.getElementById("myFrame").style.display = "none";
}
现在该函数在main.html的窗口中全局范围。
子框架具有自己的窗口对象。您需要访问父窗口对象才能从child.html调用该函数。
从main.html开始,您可以点击onclick = hideFrame()
正常调用hideFrame,但在child.html中,您应该放置onclick = window.parent.hideFrame()