Существует ли HTML напротив <noscript>?

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)
94
задан Aᴍɪʀ 27 December 2015 в 05:24
поделиться

9 ответов

У Вас могло быть невидимое отделение, которое показывают через JavaScript, когда страница загружается.

52
ответ дан ceejayoz 24 November 2019 в 05:59
поделиться

Самым легким путем я могу думать:

<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.

196
ответ дан Will 24 November 2019 в 05:59
поделиться

Вы могли также использовать JavaScript, чтобы загрузить содержание из другого исходного файла и произвести это. Это может быть немного большим количеством черного квадрата - чем Вы ищете все же.

1
ответ дан TheSmurf 24 November 2019 в 05:59
поделиться

Вот является пример для скрытого отделения путем:

<!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, но Вы получаете идею.)

1
ответ дан Shadow2531 24 November 2019 в 05:59
поделиться

статья Alex приходит на ум здесь, однако это только применимо при использовании ASP.NET - это могло бы быть эмулировано в JavaScript однако, но снова необходимо было бы использовать document.write ();

0
ответ дан Ross 24 November 2019 в 05:59
поделиться

Прежде всего, всегда разделяйте контент, разметку и поведение!

Теперь, если вы используете библиотеку 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 отключен.

8
ответ дан 24 November 2019 в 05:59
поделиться

Я не совсем согласен со всеми приведенными здесь ответами о предварительном встраивании HTML и сокрытии его с помощью CSS до тех пор, пока он снова не будет показан с помощью JS. Даже без включенного JavaScript этот узел все еще существует в DOM. Правда, большинство браузеров (даже браузеры специальных возможностей) проигнорируют его, но он все еще существует, и могут быть странные моменты, когда это возвращается, чтобы укусить вас.

Я бы предпочел использовать jQuery для создания контента. Если контента будет много, вы можете сохранить его как фрагмент HTML (только тот HTML, который вы хотите показать, и ни один из тегов html, body, head и т. д.), а затем использовать функции ajax jQuery для его загрузки в полная страница.

test.html

<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>

_test.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>
8
ответ дан 24 November 2019 в 05:59
поделиться

Вы могли установить видимость paragraph|div к 'скрытому'.

Тогда в функции 'onload', Вы могли установить видимость на 'видимый'.

Что-то как:

< тело onload = "javascript:document.getElementById (rec) .style.visibility=visible" > < p разрабатывают = "видимость: видимый" идентификатор = "rec" > Этот текст, который будет скрыт, если доступный < JavaScript;/p>

0
ответ дан 24 November 2019 в 05:59
поделиться

Нет тега для этого. Необходимо было бы использовать JavaScript для показа текста.

Некоторые люди уже предложили использовать JS для динамичной установки видимого CSS. Вы могли также динамично генерировать текст с document.getElementById(id).innerHTML = "My Content" или динамично создание узлов, но взлом CSS является, вероятно, самым простым для чтения.

0
ответ дан cpm 24 November 2019 в 05:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: