Хранить JSON внутри HTMl - PullRequest
       3

Хранить JSON внутри HTMl

3 голосов
/ 13 августа 2011

У меня есть скрипт jQuery, который выполняется на готовом документе и пытается получить некоторые значения для конфигурации.Я хочу сохранить эти значения внутри JSON.

Я сделал это:

<div id="settings" style="display: none">{"name": "value"}</div>

Однако это не подходит для поисковых систем.встроить JSON в HTML, а затем потянуть с помощью JQuery?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 13 августа 2011

Вы должны хранить свои данные отдельно от DOM.

Предполагая, что вы выводите страницы из какой-либо системы шаблонов, у вас будут те же данные, доступные в шаблоне, чтобы отобразить версию html (которую читают поисковые системы) и часть данных, который использует ваш скрипт.

Лучше всего не загрязнять пространство имен потока js, работающего в контексте текущей страницы.Для этого я рекомендую включить данные в тег сценария, назначенный переменной, которую ваш лайтбокс читает после загрузки.

Например:

<div> {name} </div>
<div> {value} </div>

<script>
    var mydata = mydata || {};
    mydata.lightbox = {
        "name": "value"
    }
</script>

В качестве альтернативы, если вы делаете xhrили запрос jsonp для получения данных json, вы все равно можете использовать подход mydata или просто работать с данными прямо в лайтбоксе.

1 голос
/ 13 августа 2011

Почему бы не выводить данные в разметке удобным для поисковых систем способом (думаю, это важно, поскольку вы упомянули об этом) и получать к ним доступ с помощью обычных селекторов jquery? Если вам нужно, вы можете скрыть элементы данных с помощью CSS.

1 голос
/ 13 августа 2011

Да, вы можете создать элемент <script> с пользовательским атрибутом типа и идентификатором. Вы можете использовать идентификатор, чтобы получить этот элемент и получить текстовое содержимое.

Конечно, вы можете просто вставить JSON в ваш другой скрипт и назначить его переменной.

Однако нет никакой гарантии, что поисковые системы будут индексировать содержимое элемента скрипта.

Вместо этого вы можете просто создать какой-то скрытый элемент с JSON в качестве текстового содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...