【发布时间】:2010-08-19 21:24:20
【问题描述】:
我有一些页面,例如用户协议,我希望在有或没有布局(extends 标记)的情况下显示,具体取决于它的调用方式。我正在使用jQuery Fancybox 在 iframe 中加载这些页面。如果 JS 被禁用,链接应该在带有完整布局的新窗口中打开,否则,如果它们在 iframe 中,则不需要布局。
到目前为止,我正在使用 jQuery 去除页眉/页脚(仅用内容部分替换正文)
if(window.location != window.parent.location) {
$('body').html($('#content'));
}
但是加载永远不会显示的内容(或者更糟的是,将显示半秒直到 JS 启动)似乎并不正确。我想我能做的是创建一个仅包含内容的部分模板,然后创建两个容器页面,一个带有页眉/页脚,一个没有;它们都包括部分。然后使用 JS 修改链接......这将不得不指向不同的视图,这又会调用不同的模板......似乎是一个非常多的工作。一定有更好的方法吗?
@蔡司:
这样的事情在 Django 中是不可能的:
{% if not iframe %}
{% extends "layouts/default.html" %}
{% endif %}
{% extends %} 标签必须是模板中的第一个标签,因此不能有条件地注释掉。我想也许我可以在布局本身中做到这一点......然后它会应用于我的所有页面......让我们试试吧。
【问题讨论】:
-
(我不知道 django)保留一个视图,但将页眉/页脚移到外面并在包含内容周围创建一个
if,您可以在其中检查查询参数。您不需要创建多个视图/寺庙。
标签: javascript jquery django fancybox