我正在构建我的第一个网站,我有一个主要元素,应该延伸到iFrame内容的高度。我需要在NavBox.htm中单击(也在iFrame中进入Index页面),在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中的链接来做更多事情。非常感谢你们提供的任何帮助!
答案 0 :(得分:0)
我回答了一个非常类似于here的问题。您可以使用此功能:
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定义元素高度的样式。