从iFrame内部调用父函数以更改元素高度
Call a parent function from inside an iFrame to change Element height
我正在构建我的第一个网站,我有一个主要元素,它应该延伸到iFrame内容的高度。我需要在NavBox.htm中单击(也可以iFrame到索引页面中),在Index.htm的主iFrame中显示SubFolder/SubPage.htm(大部分是纯文本),并调用Index.htm中的一个函数,该函数根据子页面的长度更改元素的高度。
当调用较长的页面时,它是有效的,但如果调用较短的页面,它实际上会按照我添加的填充大小(20px)增长(如果我去掉填充,它就会保持不变)。我确信这是我语法中的一个简单错误,但我无法在元素中使用新页面来重新计算高度。
在Index.htm上,我有以下更改图元高度的功能:
function frm_onload(frmname) {
frmname.frameElement.height = frmname.document.body.scrollHeight+20;
}
下面是实际的iFrame调用:
<iframe id="Center" width=98%; LANGUAGE=javascript ONLOAD="return frm_onload(Center)" marginwidth="0" marginheight="0" frameborder="0" ></iframe>
在NavBox.htm子页面上,我有一个更改元素内容的链接:
<a href="SubFolder/SubPage.htm" target="Center" onclick="document.getElementById('Center').src=SubFolder/SubPage">SubPage</a>
所以,如果我想得很清楚,要么是我从函数中不理解什么,要么我需要NavBox中的链接来做更多的事情。非常感谢你们能提供的任何帮助!
我在这里回答了一个与此问题非常相似的问题。您可以使用此功能:
function addCSSToParent(url) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = url;
link.type = 'text/css';
window.parent.document.getElementsByTagName('head')[0].appendChild(link);
}
// Add some CSS
addCSSToParent('some.css');
它将允许您附加一个.css
文件以设置父级的样式。您可以使用$(window.parent.document)
在jQuery中从iframe内部访问父文档。因此,您只需要向父级添加一个css文件,或者使用jQuery定义元素高度的样式。
相关文章:
- 查找元素高度,包括边距
- 根据元素高度和宽度的百分比变化增加或减少字体大小
- 更改第二次推送时不起作用的元素高度
- 指示中的角度手表元素高度
- 在 HTML/CSS 中更改元素高度与宽度的比较
- 获取元素高度的正确方法(使用所有浏览器?)
- 访问NativeScript中的元素高度
- 如何“;“修复”;显示滚动条时的容器元素高度
- 当元素高度不够时,如何强制滚动
- CSS webkit溢出隐藏和HTML元素高度
- 如果元素高度大于 x 添加类“纵向”,则添加类“横向”
- 如何获取离子对话框中动态加载的元素的元素高度
- AngularJS 指令中的元素高度
- 铬:设置元素高度的脚本是什么
- 哇.js偏移等于元素高度
- 如何获得隐藏元素高度
- jQuery - 如果其他元素可见,则更改元素高度
- 根据元素高度拆分段落的最有效方法
- 检测元素高度变化,如果太小则隐藏
- 根据 jQuery 中多个实例上的另一个元素高度设置高度