web2py: <body>-标签属性

web2py: <body>-Tag Attributes

我需要为 body-tag 指定一个属性,如下所示:

<body onresize="window.location.href=window.location.href">

我当然可以在相应的视图中这样做。但是后来我在生成的 HTML 代码中有两个开始的正文标签。 HTML 代码有效,但不符合给定标准。

因此,我的问题是,如果有指定属性的方法,它会包含在生成的响应正文标签中。

感谢大家的支持!

好的,我找到了解决方案……只要你想,一切都很简单;-)

由于 body-tag 源自扩展 "layout.html" {{extend 'layout.html'}} 可以在那里更改 body-tag。如果不需要所有视图都具有 onresize 属性,则可以对 "layout.html" 进行适配,例如 "layout-onresize.html" 用于此特殊目的。

在 "layout.html" 视图中,您可以这样做:

<body{{=XML(' onresize="window.location.href=window.location.href"') if response.resizable_body else ''}}>

然后在模型或控制器中,你可以这样做:

response.resizable_body = True

或者在视图中(注意,resizable_body 属性在 扩展布局之前设置

{{response.resizable_body = True}}
{{extend 'layout.html'}}

在任何时候都不需要将 response.resizable_body 显式设置为 False,因为默认情况下 response.resizable_body 只是 Noneresponse 是一个 Storage 对象,因此当您尝试访问一个不存在的属性时,它只会产生 None).