На основании ответа от #squiguy, чтобы получить истинную временную метку, я бы напечатал ее из float.
>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318
По крайней мере, это концепция.
Нет, вы не должны избегать <
и >
, используя HTML-сущности внутри <script>
в HTML.
\
на \\
и "
на \"
) </
на <\/
, чтобы предотвратить выход из элемента <script>
. В XHTML все сложнее.
]]>
на ]]]]><![CDATA[>
, чтобы предотвратить выход из него (в дополнение к экранированию строки JavaScript). text/html
(что делают 99% людей), вам придется использовать блок XML CDATA, экранирование XML CDATA и экранирование HTML одновременно. Проблема имеет разные ответы в зависимости от того, какой язык разметки вы используете.
Если вы используете HTML, вы не должны представлять их сущностями, поскольку элементы сценария помечены как содержащие CDATA.
Если вы используете XHTML, то вы можете представлять их как CDATA с явными маркерами CDATA или представлять их с помощью сущностей.
Если вы используете XHTML, но используете его как text / html, то вам необходимо написать что-то, что соответствует правилам XHTML, но все еще работает с парсером text / html. Обычно это означает использование явных маркеров CDATA и их комментирование в JavaScript.
<script type="text/javascript">
// <![CDATA[
…
// ]]>
</script>
Некоторое время назад я написал немного о принципах и причинах этого .
The cheap and easy way:
<script type="text/javascript">
var username = "<%= Encode(UserName) %>";
</script>
where the encoding scheme in Encode
is to translate each character of input into the associated \xABCD
representation compatible with JavaScript.
Another cheap and easy way:
<script type="text/javascript">
var username = decodeBase64("<%= EncodeBase64(UserName) %>");
</script>
if you are dealing only with ASCII.
Of course, pst
hit the nail on the head with the strict way of doing it.