标签: frameset

框架集的纯CSS模拟

我一直在寻找超过1小时没有成功.是否有一种模仿框架集的纯CSS方式?我的意思是,真的模仿它.我发现了一些有趣的东西,你将有固定的顶部和底部块,但内容的滚动条是常规的浏览器主体滚动条.我需要的只是内容块的滚动条,就像框架集一样.

我可以通过将overflow:auto指定给我的内容区域div并设置固定高度来使其工作.但问题是我不知道客户端浏览器窗口大小而不使用javascript.而且我不想为此使用javascript.我也使用百分比作为高度,因为我的顶部块具有固定的高度.下部块是应根据浏览器窗口高度扩展或缩小的块.任何帮助赞赏.谢谢!

html css xhtml dom frameset

7
推荐指数
1
解决办法
905
查看次数

IE href ="javascript:customFunction()"没有在第一帧加载时触发

我有一个自定义日期选择器弹出窗口有时无法在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.

javascript internet-explorer frameset

7
推荐指数
1
解决办法
1727
查看次数

在框架中设置location.hash

我正在使用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事件的一部分.

javascript ajax google-chrome frameset fragment-identifier

6
推荐指数
1
解决办法
8976
查看次数

iframe中框架的jQuery/javascript上下文是什么?

让我先说一下......我引用了这个问题/答案,它似乎包含线索,但我仍然缺少整个画面

在另一个框架的上下文中运行JQuery

从本质上讲,索引页面的结构就是这样

<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...我还缺少什么?

javascript iframe jquery frameset

6
推荐指数
1
解决办法
5345
查看次数

window.onbeforeunload,但对于一个框架?

我试图提出关于离开网页的警告信息,但它嵌套在框架集中.

如果我在浏览器中将网页加载为根页面,则显然会触发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)

测试文件:

test1.html(带有unbeforeunload脚本的页面)

<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)

test2.html(frameset)

<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)

test3.html(菜单,用脚本触发框架更改)

<html>
    <body>
        <a target="content" href="http://www.bitbucket.org">bitbucket</a>
    </body> …
Run Code Online (Sandbox Code Playgroud)

javascript onbeforeunload frameset frame

5
推荐指数
1
解决办法
8409
查看次数

响应式设计和视口无法通过域的"框架集"工作.

我正在开发一个响应式设计网站,遇到了相当大的障碍.我使用了视口代码:

<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 viewport responsive-design

5
推荐指数
2
解决办法
8441
查看次数

将 FRAMESET 转换为 IFRAME

我正在尝试将一些使用 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)

html iframe frameset

5
推荐指数
1
解决办法
6835
查看次数

如何将<script>放在框架集文档的"正文"中?

通常我们将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 javascript frames frameset script-tag

5
推荐指数
1
解决办法
2687
查看次数

将frameset与页面中的其他HTML元素一起使用

我有一个页面,我想在其中包含框架集,以及使用其他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)

html javascript css frames frameset

4
推荐指数
2
解决办法
1611
查看次数

模拟框架集分隔符行为

HTML5 当前规范删除了该<frameset>标签。

有一个很好的功能,如果<frameset>没有它,就很难重现:

在框架集中,您可以使用鼠标更改框架分隔线的位置。

如何在 JavaScript 中使用 DIV 提供相同的功能?

我发现以下内容演示了我正在寻找的行为。然而,我想避免使用 JQuery,尽管使用 jQuery 应该是首选方式。

html javascript frameset

4
推荐指数
1
解决办法
906
查看次数