kaz*_*aki 26 html javascript jquery frame
我在这样的一个页面中有2个框架(home.html)
<frameset rows="50%, 50%">
<frame id="treeContent" src="treeContent.html" />
<frame id="treeStatus" src="treeStatus.html" />
</frameset>
Run Code Online (Sandbox Code Playgroud)
然后在一个框架(treeStatus.html)中我有类似的东西
<body style="margin: 0px">
<div id="statusText">Status bar for Tree</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我希望从顶部窗口通过jquery操作位于子框架中的div(例如show和hide).
$(document).ready(function(){
$('#treeStatus').contents().find("#statusText").hide();
});
Run Code Online (Sandbox Code Playgroud)
我不知道这是否适用于iframe,但在我的情况下,我有简单的框架它似乎不起作用.代码放在home.html中
这是来自firebug控制台的一些输出
>>> $('#treeStatus')
[frame#treeStatus]
>>> $('#treeStatus').contents()
[]
>>> $('#treeStatus').children()
[]
Run Code Online (Sandbox Code Playgroud)
那么如何从顶部框架访问框架元素?我在这里错过了什么吗?
回答
在这里结合两个答案后,正确的方法是
$('#statusText',top.frames["treeStatus"].document).hide();
Run Code Online (Sandbox Code Playgroud)
为此,框架必须具有除id之外的name属性,如下所示:
<frameset rows="50%, 50%">
<frame id="treeContent" src="treeContent.html" />
<frame name="treeStatus" id="treeStatus" src="treeStatus.html" />
</frameset>
Run Code Online (Sandbox Code Playgroud)
Cha*_*ell 12
你可以抓住Frame和div,你想要操纵它并将它传递给变量.
var statusText = top.frames["treeStatus"].document.getElementById('statusText');
Run Code Online (Sandbox Code Playgroud)
然后你可以通过jQuery做任何你想做的事情.
$(statusText).whatever();
Run Code Online (Sandbox Code Playgroud)
虽然有时你只是无法使用框架,但请记住,<frame>标签在HTML5中已经过时.如果您计划升级到HTML5,则必须使用iFrame.
您需要提供对您要访问的框架的引用:
$("some selector", top.frames["treeStatus"]))
Run Code Online (Sandbox Code Playgroud)
小智 5
我有嵌套框架.在我的情况下,为了使它工作我使用命令:
var statusText =
top.document.getElementById("treeStatus").contentDocument.getElementById("statusText");
Run Code Online (Sandbox Code Playgroud)
然后,正如Charles已经回答的那样,你可以通过jQuery做任何你想做的事情:
$(statusText).whatever();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39529 次 |
| 最近记录: |