我正在写一个小网页,其目的是构建其他一些页面,只需将它们合并到一个浏览器窗口中以便于查看.我试图框架的一些页面禁止被框架并抛出"拒绝显示文档,因为X-Frame-Options禁止显示".Chrome中的错误.我知道这是一个安全限制(有充分理由),并且无权更改它.
是否有任何替代框架或非框架方法在单个窗口中显示不会被X-Frame-Options标头绊倒的页面?
HTML早期有框架,但在最新版本中已弃用.许多浏览器(我已尝试使用Internet Explorer)甚至不能正确显示框架.
为什么要这样做?框架有什么缺点?
我可以使用load事件检测何时加载了iframe的内容.不幸的是,就我的目的而言,这有两个问题:
是否有某种方法可以确定是否发生上述任何一种错误?
我正在编写一个基于Mozilla/XULRunner的半网络半桌面应用程序,因此欢迎只在Mozilla中运行的解决方案.
对于学校我必须建立一个网站,它必须使用那些糟糕的老该死的框架.我已经向老师抱怨这个没有任何成功:(
我想使用HTML5,但似乎不推荐使用框架.我真的需要使用XHTML或HTML 4吗?是否有一些解决方法使我的页面使用框架验证HTML5?
我正在使用的客户端有一个像这样的框架集......
<frameset rows="100,*, 0">
<frame name="theFrame" id="theFrame" src="blah.html" >
<frame name="theSecondFrame" id="theSecondFrame" src="foo.html" >
<frame name="importantFrame" id="importantFrame" src="myFrame.html" >
</frameset>
Run Code Online (Sandbox Code Playgroud)
当某个动作发生时,我需要我的框架(当前隐藏的重要框架)主要接管页面并阻止与其他框架的任何交互.我正计划使用jquery块UI插件阻止交互.
问题是我实际上无法更改foo.html或blah.html文件.所以JS代码不能存在.我需要做的是在这些帧的上下文中执行我的jquery代码.所以回顾一下,我需要将我的JQuery代码放在myFrame.html中,但是在其他框架的上下文中执行.我怎样才能做到这一点?希望有道理.
谢谢CDR
您好我需要获取我的GreaseMonkey脚本的所有帧的列表,但实际上我猜这是一般的Javascript问题.如果我能够到达嵌套在页面中的每一个帧,那将是很棒的.到目前为止,我在获取嵌套在主文档框架中的帧数时遇到了问题.
我处理的页面包含多级框架集,框架包含其他框架.我已经设法获得有关主文档框架集的顶级框架的信息(在代码级别1中),但在此级别,我得到的信息是这些框架的帧计数等于0,这是不正确的.
我想出了以下代码
$(document).ready(function(){
var frames = window.frames;
var i,j;
var reportText = "level 0 > " + frames.length +"\r\n";
for (i = 0; i < frames.length; i++) {
var frames2 = frames[i].frames;
reportText += "level 1 - " + i + " > " + frames[i].name + " - " + frames2.length +"\r\n";
for (j = 0; j < frames2.length; j++) {
var frames3 = frames2[j].frames;
reportText += "level 2 …
Run Code Online (Sandbox Code Playgroud) 我需要从框架集框架中访问和元素.例如,如果我有以下标记:
<frameset rows="33%,33%,*">
<frame src="frame1.html"/>
<frame src="frame2.html"/>
<frame src="frame3.html"/>
</frameset>
Run Code Online (Sandbox Code Playgroud)
如何从其中一个子框架中获取某些元素?我试过这个:
window.frames[1].getElementById('someElementId')
Run Code Online (Sandbox Code Playgroud)
这会导致类型错误:
getElementById()不是函数.
有人可以帮忙吗?
谢谢!
在我开始这个问题之前,我明白它的每个方面都是错误的.请记住这一点......
我有一个CRM-ish内部网应用程序,带有我在2001年开发的集成软电话.它基本上是一个集合应用程序,它将电话控制与基于Web的前端集成,用于帐户管理.(Genesys电话和基于AS400的集合系统......使用MQSeries)
在我称之为"生命终结"之前,我正试图尽可能地使这个应用程序现代化.作为我对其进行现代化的尝试的一部分,我已经为我的JS功能和UI实现了jQuery和jQuery UI.我不是很疯狂,但它根深蒂固.
现在,输入问题:我们当前使用IE6,应用程序是使用框架构建的.jQuery库的实现从内存的角度揭示了应用程序的筛选性质.它目前在启动时消耗大约75Mb的内存,并在大约2-3小时后增长到150Mb到300Mb.然后浏览器崩溃了.
我已将内存泄漏缩小到帧之间的串扰.我已经在sIEve和Drip中单独测试了页面,并且没有发现泄漏.但访问框架集内的页面,这是一个定时炸弹.
我知道答案是重新设计没有框架的应用程序并开始使用更好的浏览器.有两个问题:
我已经在IE9上对此进行了测试,问题仍然存在,但是更加可控
重新设计应用程序需要大约50万美元和6-12个月.
有谁知道解决"框架泄漏"问题的方法?我知道我没有提供任何代码示例,但我只是在寻找一般知识.我CollectGarbage()
在onload和onunload上为应用程序中的每个页面调用IE 方法,但无济于事.我试过empty()
在jQuery中调用该方法.我已经尝试将document.body
元素的每个孩子都设置为null
.什么都行不通.
我不愿意退出所有这些变化,因为实际上已经实现了一些相当大的成本削减功能.
我已经设法找出发生内存泄漏的情况.我认为这是帧之间的"串扰",但似乎刷新单帧时会发生内存泄漏.
我设置了一个基本框架集,其中包含同一页面的5个实例(我非常确定每个sIEve没有泄漏).
<html>
<head>
<title>Frame Leak Test</title>
</head>
<frameset cols="*" rows="50%,50%" frameborder="1">
<frameset cols="33%,33%,34%" rows="100%">
<frame src="http://npasappgeneqa02/live/" />
<frame src="http://npasappgeneqa02/live/" />
<frame src="http://npasappgeneqa02/live/" />
</frameset>
<frameset cols="50%,50%" rows="100%">
<frame src="http://npasappgeneqa02/live/" />
<frame src="http://npasappgeneqa02/live/" />
</frameset>
</frameset>
</html>
Run Code Online (Sandbox Code Playgroud)
正在加载的索引页面显示sIEve中没有泄漏.
当我在sIEve中加载框架集页面并单击自动刷新时,没有报告内存泄漏.但是,如果我在单个框架上右键单击 - >刷新,则DOM中75%的已加载项目将列为泄漏.
显然,自动刷新相当于F5/shift + F5刷新.这清除了页面的内存.但是当重新加载单个帧时,内存永远不会清除......显然.我的用户必须看到的每个屏幕都会重新加载到主框架中.
我不能简单地刷新框架集,因为框架集中有一个软电话,如果它被刷新或不正确地注销,它将带来Armageddon.
有没有人知道如何控制框架内存而不刷新它?
有时当我在谷歌浏览器中检查元素时,我发现我有一些大框架,但它们充满了空白区域.谁知道经常会造成如此大量的空地?我已经看到定时器会导致延长帧长度的问题但是在下面的例子中我不确定为什么帧会如此之大.
会喜欢一些帮助减少这些
自1998年以来我没有使用过框架.它们看起来是个坏主意,在我的所有开发中,我从未遇到过框架是正确的解决方案,甚至是一个不错的解决方案.
但是,我现在正在使用由另一个组编写的内部Web应用程序,整个站点都是在 - 标题,左侧菜单,右侧内容 - 框架集中构建的.
首先,当VPN到我的网络时,我不断找到"website.com/frames.html"找不到."错误信息.当我在内部网络上时,这不会发生.
其次,该应用程序具有内置的电子邮件/消息系统.未读消息的数量在左侧菜单框中显示为"消息(3)",但在读取消息时计数不会更新.开发人员告诉我,因为它在一个框架中我需要右键单击菜单并"刷新".认真????
所以,我的编程相关问题是,你有什么理由不在网站中使用框架?