我有一个jQuery脚本,它在文档准备就绪的情况下运行,并尝试获取一些配置值。我想将这些值存储在JSON中。将JSON存储在HTMl中
我已经做到了这一点:
<div id="settings" style="display: none">{"name": "value"}</div>
然而,这不是搜索引擎友好。
是否有另一种方法嵌入JSON内的HTML,然后用jQuery拉?
谢谢。
我有一个jQuery脚本,它在文档准备就绪的情况下运行,并尝试获取一些配置值。我想将这些值存储在JSON中。将JSON存储在HTMl中
我已经做到了这一点:
<div id="settings" style="display: none">{"name": "value"}</div>
然而,这不是搜索引擎友好。
是否有另一种方法嵌入JSON内的HTML,然后用jQuery拉?
谢谢。
是的,你可以创建一个自定义类型属性和ID的<script>
元素。您可以使用该ID来获取该元素并检索文本内容。
当然,你可能只需要插入JSON在与您的其他脚本,并将其分配给一个变量。
但是,谁也不能保证搜索引擎将索引的脚本元素的内容。
相反,你可以只建立某种形式的隐藏元素,用JSON作为其文本内容。
为什么不输出在一个搜索引擎友好的方式(我想这是很重要的,因为你提到它),与普通jQuery选择访问这些标记中的数据?如果需要,可以使用CSS隐藏数据元素。
不,这是不可能的。我只是告诉我的灯箱脚本做幻灯片放映,这只能用json才能放置它? – Vincent
所以你需要将对象中的数据传递给插件?同样,如果SEO很重要,您可以从标记中的数据创建JavaScript对象。至少我是这么做的:) –
你需要保持你的数据与DOM分开。
假设您将页面从某个模板系统渲染出来,您将在模板中提供相同的数据以呈现html版本(搜索引擎读取的内容)和数据部分,你的脚本使用。
它最好不要污染在当前页面的上下文中运行的JS线程的命名空间。为此,我建议将数据包含在分配给您的灯箱读取后的变量的脚本标记中。
例如:
<div> {name} </div>
<div> {value} </div>
<script>
var mydata = mydata || {};
mydata.lightbox = {
"name": "value"
}
</script>
或者,如果你做一个XHR或JSONP请求来获取JSON数据,你仍然可以使用MYDATA的办法,或者只是将数据直接在您的收藏工作。
你如何包括JSON,它是可见的搜索引擎?这通常不是问题。 –
你能否包含你用来启动灯箱的线?我可以想出几个方法来解决你的问题,使用lightbox的幻灯片初始化代码将帮助人们回答 –