使HTML页面的元素可以在另一个HTML页面中访问

时间:2016-06-24 16:27:58

标签: javascript html css iframe

我有一个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页面?

3 个答案:

答案 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()