我一直在寻找超过1小时没有成功.是否有一种模仿框架集的纯CSS方式?我的意思是,真的模仿它.我发现了一些有趣的东西,你将有固定的顶部和底部块,但内容的滚动条是常规的浏览器主体滚动条.我需要的只是内容块的滚动条,就像框架集一样.
我可以通过将overflow:auto指定给我的内容区域div并设置固定高度来使其工作.但问题是我不知道客户端浏览器窗口大小而不使用javascript.而且我不想为此使用javascript.我也使用百分比作为高度,因为我的顶部块具有固定的高度.下部块是应根据浏览器窗口高度扩展或缩小的块.任何帮助赞赏.谢谢!
我有一个自定义日期选择器弹出窗口有时无法在IE中工作.它适用于Chrome和Edge.
代码看起来像这样:
<frameset>
<frame>Buttons for next/prev month/year</frame>
<frame>This is the actual calendar that gets redrawn when the above buttons are used
<a href="javascript:parent.opener.setDate(1);">1</a> //there's a different anchor tag for each day of the month
</frame>
<frameset>
Run Code Online (Sandbox Code Playgroud)
所以这里有点奇怪.我们有两个网络,称之为新旧.旧的可能有很多无证的全球政策变化,新的可能接近政府标准.这适用于旧网络上的任何浏览器,但不适用于新网络上的IE(11).它适用于Edge.此外,如果顶部框架按钮用于选择下一个/上个月,或仅选择"今天"按钮,则所有底部框架锚定链接都能正常工作.没有控制台错误/警告,网络监视器中没有任何内容显示请求返回错误代码,点击只是不注册.我在customFunction()中放置一个断点,当链接不起作用时它不会中断,但是如果链接可以工作,它将会中断.
唯一对我来说很奇怪的是整个弹出窗口的代码看起来像:
str = "<frameset><frame name='topFrame' " +
"src='javascript:parent.opener.drawTop'></frame><frame name='bottomFrame' "+
"src='javascript:parent.opener.drawBottom'><frame</frameset>"
document.write(str);
Run Code Online (Sandbox Code Playgroud)
我确实想检查一下,当使用prev/next/etc按钮时重绘底部框架的代码与第一次加载时调用的函数相同.
然而,看起来奇怪的是,在第一次加载时,DOM检查器显示所有内容(顶部框架,底部框架包括每月每天的所有单独数字等),但调试器(F12工具)不显示用document.write(str)加载的代码; 线.为了能够看到该代码并设置断点,我必须使用prev/next按钮,然后在Debugger中显示另一个.html文件,该文件具有与DOM匹配的构造HTML.
我正在使用ajax更新框架中页面的位置.但是在设置哈希的位置时(特别是在Chrome和某些版本的IE(5.5)上,偶尔在IE7上),页面正在被重新加载.
以下html演示了这个问题.
主框架.... frame.html是
<html><head>
<frameset rows="*">
<frame src=sethash.html frameborder=0 scrolling=auto name=somebody>
</frameset>
</head></html>
Run Code Online (Sandbox Code Playgroud)
sethash.html页面是.
<html><head>
<script language=JavaScript>
var Count = 0;
function sethash()
{
top.document.location.hash = "hash" + Count;
Count++;
}
</script>
</head>
<body onload="alert('loaded')">
<h1>Hello</h1>
<input type='button' onClick='sethash()' value='Set Hash'>
</body>
</html>`
Run Code Online (Sandbox Code Playgroud)
在大多数浏览器中,加载frame.html会在加载页面时显示加载的警报.然后,当按下设置的哈希按钮时,URL将被更改,但加载的警报的哈希将不再显示.在Chrome和某些版本的IE上
Microsoft报告Internet Explorer 5.5 链接文本可能存在同样的问题
我不能使用microsoft建议的解决方案,即捕获事件而不是触发它,但只是滚动到视图,因为我使用set top.location.hash作为onLoad事件的一部分.
让我先说一下......我引用了这个问题/答案,它似乎包含线索,但我仍然缺少整个画面
从本质上讲,索引页面的结构就是这样
<html>
<body>
<div class="frames-wrap">
<iframe id="this-iframe" src="location.php">
</iframe>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
location.php然后包含一个框架集(咳咳,不是我的想法......),它有两个像这样设置的框架......
<frameset cols="350,*">
<frame src="search.php" id="frame_search" name="search"/>
<frame src="edit.php" id="frame_edit" name="edit" />
</frameset>
Run Code Online (Sandbox Code Playgroud)
如果我想操纵索引页面和这些元素之间的对象我将如何处理这个?
我一直认为上下文应该类似于window.parent.frames[0].document...我还缺少什么?
我试图提出关于离开网页的警告信息,但它嵌套在框架集中.
如果我在浏览器中将网页加载为根页面,则显然会触发window.onbeforeunload触发器,但在框架集内加载时不会触发.
编辑:它在Chrome 7或Safari 5中不起作用,但它适用于Internet Explorer 8和FireFox 3.6.是否有修复/解决方法,以便我可以在Chrome 7和/或Safari 5中使用它?
我究竟做错了什么?
这是我试过的:
function closePageWarning()
{
return "Are you sure you want to leave this page?"
}
window.onbeforeunload = closePageWarning
Run Code Online (Sandbox Code Playgroud)
测试文件:
<html>
<body>
<script language="javascript">
function closePageWarning()
{
return "Are you sure you want to leave this page?";
}
window.onbeforeunload = closePageWarning;
</script>
<a href="http://www.bitbucket.org">bitbucket</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
<html>
<frameset cols="20%, 80%">
<frame name="menu" src="test3.html" />
<frame name="content" src="test1.html" />
</frameset>
</html>
Run Code Online (Sandbox Code Playgroud)
<html>
<body>
<a target="content" href="http://www.bitbucket.org">bitbucket</a>
</body> …Run Code Online (Sandbox Code Playgroud) 我正在开发一个响应式设计网站,遇到了相当大的障碍.我使用了视口代码:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
Run Code Online (Sandbox Code Playgroud)
和使用:
@media only screen and (min-width: 501px) and (max-width: 930px) {
Run Code Online (Sandbox Code Playgroud)
CSS HERE}
如所须.当我将索引页放在我的主机服务器上进行检查时,该站点不会响应我的移动设备之间的更改.我尝试过我的域名网站 - 没有用.将域名指向我的服务器并在a中显示该网站<frameset>并取消我的CSS和meta.当我转到服务器的本机网址时,它可以正常工作.有没有办法解决?
我正在尝试将一些使用 FRAMESET 的旧代码转换为使用 IFRAME 或 DIV。旧代码会产生两个垂直框架,左边的框架最初占窗口的 30%。用户可以移动分割线来改变比例。旧代码(精简)是:
<HTML>
<HEAD>
</HEAD>
<FRAMESET frameSpacing="3" frameBorder="0" cols=30%,* >
<FRAME id="contentGenerator" src="content.html" scrolling="no">
<FRAME id="content" src="startNSM.html" >
</FRAMESET>
</HTML>
Run Code Online (Sandbox Code Playgroud)
到目前为止我得到的是:
<HTML>
<HEAD>
<STYLE>
#cgDiv {
HEIGHT: 100%; WIDTH: 30%; VERTICAL-ALIGN: top; POSITION: fixed
}
#contentGenerator {
HEIGHT: 100%
}
#cDiv {
HEIGHT: 100%; WIDTH: 70%; VERTICAL-ALIGN: top; POSITION: relative
}
#content {
HEIGHT: 100%
}
</STYLE>
</HEAD>
<BODY >
<DIV id="cgDiv">
<IFRAME id="contentGenerator" src="content.html">
</IFRAME>
</DIV>
<DIV id="cDiv">
<IFRAME id="content" src="startNSM.html">
</IFRAME>
</DIV>
</BODY> …Run Code Online (Sandbox Code Playgroud) 通常我们将JavaScript <script>标记放在HTML文档的底部,就在结束</body>标记之前,这样做的好处是它们在DOM中已经可用的所有元素之后执行,还有更多的东西.
但是,我使用的是框架文档 1,<frameset>而不是<body>标签.我不想把它们放在<head>文档中,因为它们不能立即访问3以下的DOM元素.而且我不想<iframe>在标准身体标签中使用s 4.我试过了
<head>
<title>Framesets are interesting</title>
</head>
<frameset cols="50%,50%">
<frame id="frame-a" src="a.html">
<frame id="frame-b" src="b.html">
<script type="text/javascript">
console.log("hello world!");
console.log(document.getElementById("frame-a")); // this is what I'm after
</script>
</frameset>
Run Code Online (Sandbox Code Playgroud)
但是,脚本根本没有执行,甚至没有出现在DOM检查器中.当然,一个<frameset>可能只包含<frame>和<noframes>标签.但是,在<frame>标签之后真的没有办法让脚本执行吗?
仅供参考,将它们放置在</frameset> 有时用<body>s 完成后也不起作用.
1:是的,我知道他们已被弃用了.它们只是我项目的自然选择2,一个简洁的并排视图,显示两个文档并以复杂的方式将它们滚动在一起.
2:......之前我从未使用过它们,所以我想尝试一下.
3:这就是我最终的结果,毕竟一个onload处理程序是微不足道的.问题仍然存在,我很好奇.
4:工作正常,但需要复杂的CSS样式
我有一个页面,我想在其中包含框架集,以及使用其他HTML元素(基本上是一些隐藏的表单字段).但是我可以在哪里将这些额外的HTML元素放在代码中?
<frameset cols="*" rows="40,*">
<frame src="#" />
<frame src="#"/>
<noframes>
<body>
Please enable frames to view.
</body>
</noframes>
</frameset>
Run Code Online (Sandbox Code Playgroud) HTML5 当前规范删除了该<frameset>标签。
有一个很好的功能,如果<frameset>没有它,就很难重现:
在框架集中,您可以使用鼠标更改框架分隔线的位置。
如何在 JavaScript 中使用 DIV 提供相同的功能?
我发现以下内容演示了我正在寻找的行为。然而,我想避免使用 JQuery,尽管使用 jQuery 应该是首选方式。