web2py: <body>-Tag Атрибуты
Мне нужно указать атрибут для тега body следующим образом:
<body onresize="window.location.href=window.location.href">
Конечно, я могу сделать это в соответствующем представлении. Но тогда у меня есть два открывающих тега body в результирующем HTML-коде. HTML-код работает, но не соответствует заданным стандартам.
Таким образом, мой вопрос заключается в том, что, если есть способ указать атрибут, он будет включен в сгенерированный тег body ответа.
Спасибо за любую поддержку!
2 ответа
В представлении "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
будет просто None
по умолчанию (response
это Storage
объект, поэтому, когда вы пытаетесь получить доступ к несуществующему атрибуту, он просто дает None
).
Хорошо, я нашел решение... все легко, когда вы думаете;-)
Поскольку тег body происходит от расширения "layout.html" {{extended 'layout.html'}}, здесь можно изменить тег body. Если для всех представлений нет необходимости иметь атрибут onresize, для этой специальной цели можно использовать "layout.html", например "layout-onresize.html".