首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查我是否在cfwindow内

检查我是否在cfwindow内
EN

Stack Overflow用户
提问于 2014-11-18 06:46:18
回答 1查看 144关注 0票数 0

我在我的网站上有一个eror页面,每当出现错误时都会被调用,有时是从cfwindow中调用的,然后我不想显示页眉和页脚。

我有很多cfwindows可能会产生这个错误(正在处理中... )

因此,我不会将信息添加到调用cfwindow的父窗口中,而是(如果可能)只想检查错误页面

代码语言:javascript
复制
if(parent.cfwindow){remove the header and footer}

感谢您的帮助

EN

回答 1

Stack Overflow用户

发布于 2014-11-18 11:33:01

每个更新/澄清的问题(关于这是一个错误页面)..

虽然javascript仍然可以管理这一点,但这最适合于服务器端。

我不知道您的OnError方法是什么样子,也不知道您是否在使用application.cfm。下面是我如何做到这一点的:

我不会直接重定向到/error.cfm或其他错误页面,而是:

代码语言:javascript
复制
<cfif not isDefined("url.inWindow")>
    <cflocation url="/error.cfm" addtoken="no" />
<cfelse>
    <cflocation url="/error.cfm?inWindow=1" addtoken="no" />
</cfif>

在错误文件中,我会根据url.inWindow的存在执行一些<cfif>

Javascript,尤其是jQuery,也有这样做的方法,您可以删除页眉和页脚内容,并使用unwrap()来拉取内容区域的内容,如下所示:JS - Remove a tag without deleting content

我不使用CFWINDOW,所以不幸的是,我不熟悉其中的细微差别,Railo对它的支持略有不同

冷融合

实现这一点的最佳ColdFusion路由可能只是通过源链接传递url变量。

代码语言:javascript
复制
<cfwindow ... source="/demo/6/windowContentA.cfm?inWindow=1">

然后,在文档中。

代码语言:javascript
复制
<cfif isDefined("url.inWindow")>The page is within a window</cfif>

Javascript

在javascript中实现这一点的方法与这两种方法中的任何一种都有关系(这是我无法在不访问ACF的情况下测试:/的部分)。检查窗口是否为顶部元素(但这可能不起作用)。

代码语言:javascript
复制
<a href="javascript:void(0)" onclick="alert((self==top ? 'in a popup' : 'not in a popup'));">Test link</a>

或者(如果这样做不起作用,那么也检查页面中是否存在元素。

代码语言:javascript
复制
<a href="javascript:void(0)" onclick="alert(( document.getElementById('cf_window1') ? 'in a popup' : 'not in a popup'));">Test link</a>

因为CFWindow创建了一个名为cf_window1的元素,所以我将其用于测试,但是您应该能够使用任何元素名称。如果需要,您可以专门为此目的创建一个元素。

虽然这是我设法提醒一些无关紧要的魔法的方法,但您可以在test...through标记中使用类似的javascript来做一些除了警告之外的事情。

代码语言:javascript
复制
<script>
  if(self==top) {
    // The page is outside of a frame.
  }
</script>

或者寻找元素的路线

代码语言:javascript
复制
<script>
  if(document.getElementById('cf_window1')) {
    // The page is within a frame.
  }
</script>

这两条路由都不应该被认为是非常安全的。这是为了方便和展示,但你不应该认为它们是不可理解的,因为它们不是。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26983420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档