import json
class Foo(object):
def __init__(self):
self.bar = 'baz'
self._qux = 'flub'
def somemethod(self):
pass
def default(instance):
return {k: v
for k, v in vars(instance).items()
if not str(k).startswith('_')}
json_foo = json.dumps(Foo(), default=default)
assert '{"bar": "baz"}' == json_foo
print(json_foo)
У Вас могло быть невидимое отделение, которое показывают через JavaScript, когда страница загружается.
Самым легким путем я могу думать:
<html>
<head>
<noscript><style> .jsonly { display: none } </style></noscript>
</head>
<body>
<p class="jsonly">You are a JavaScript User!</p>
</body>
</html>
Никакой document.write, никакие сценарии, чистый CSS.
Вы могли также использовать JavaScript, чтобы загрузить содержание из другого исходного файла и произвести это. Это может быть немного большим количеством черного квадрата - чем Вы ищете все же.
Вот является пример для скрытого отделения путем:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
*[data-when-js-is-on] {
display: none;
}
</style>
<script>
document.getElementsByTagName("style")[0].textContent = "";
</script>
</head>
<body>
<div data-when-js-is-on>
JS is on.
</div>
</body>
</html>
(необходимо было бы, вероятно, настроить его для плохого IE, но Вы получаете идею.)
статья Alex приходит на ум здесь, однако это только применимо при использовании ASP.NET - это могло бы быть эмулировано в JavaScript однако, но снова необходимо было бы использовать document.write ();
Прежде всего, всегда разделяйте контент, разметку и поведение!
Теперь, если вы используете библиотеку jQuery (вам действительно стоит, она делает JavaScript намного проще), следующее код должен делать:
$(document).ready(function() {
$("body").addClass("js");
});
Это даст вам дополнительный класс в теле, когда JS включен. Теперь в CSS вы можете скрыть область, когда класс JS недоступен, и показать область, когда JS доступен.
В качестве альтернативы вы можете добавить no-js
в качестве класса по умолчанию в ваш тег body и используйте этот код:
$(document).ready(function() {
$("body").removeClass("no-js");
$("body").addClass("js");
});
Помните, что он все еще отображается, если CSS отключен.
Я не совсем согласен со всеми приведенными здесь ответами о предварительном встраивании HTML и сокрытии его с помощью CSS до тех пор, пока он снова не будет показан с помощью JS. Даже без включенного JavaScript этот узел все еще существует в DOM. Правда, большинство браузеров (даже браузеры специальных возможностей) проигнорируют его, но он все еще существует, и могут быть странные моменты, когда это возвращается, чтобы укусить вас.
Я бы предпочел использовать jQuery для создания контента. Если контента будет много, вы можете сохранить его как фрагмент HTML (только тот HTML, который вы хотите показать, и ни один из тегов html, body, head и т. д.), а затем использовать функции ajax jQuery для его загрузки в полная страница.
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$.get('_test.html', function(html) {
$('p:first').after(html);
});
});
</script>
</head>
<body>
<p>This is content at the top of the page.</p>
<p>This is content at the bottom of the page.</p>
</body>
</html>
<p>This is from an HTML fragment document</p>
<p>This is content at the top of the page.</p>
<p>This is from an HTML fragment document</p>
<p>This is content at the bottom of the page.</p>
Вы могли установить видимость paragraph|div к 'скрытому'.
Тогда в функции 'onload', Вы могли установить видимость на 'видимый'.
Что-то как:
< тело onload = "javascript:document.getElementById (rec) .style.visibility=visible" > < p разрабатывают = "видимость: видимый" идентификатор = "rec" > Этот текст, который будет скрыт, если доступный < JavaScript;/p>
Нет тега для этого. Необходимо было бы использовать JavaScript для показа текста.
Некоторые люди уже предложили использовать JS для динамичной установки видимого CSS. Вы могли также динамично генерировать текст с document.getElementById(id).innerHTML = "My Content"
или динамично создание узлов, но взлом CSS является, вероятно, самым простым для чтения.