如何使javascript生成的HTML可由Google抓取工具编制索引?

时间:2013-05-31 07:55:55

标签: java jquery struts2 seo google-crawlers

我有一个带标题导航的网络表单。

要生成此标题导航,我对 Java 类进行 AJAX 调用,并获取JSON字符串作为响应。

我解析字符串并在jQuery中创建HTML。以下是一个例子:

    $(document).ready(function(){
        $.ajax({
            url: '/test/newHeaderJSON',
            dataType: 'json',
            type: 'GET',
            success: function(data, textStatus, jqXHR) {
                $('ul.main-menu').append('<a href="'+ obj.header.headerItems.productMenu.link +'">' + obj.header.headerItems.productMenu.name + '</a>');
            }
        });
    });

以上示例显示了通过jQuery添加到页面的锚标记。

现在出现了问题。在页面源中看不到此锚点,因此无法抓取。

我想让这个组件可以抓取。

我已经阅读了关于_escape_fragment_的内容,但无论我在网上找到什么,我都无法理解它。

有人能告诉我这种方法是如何以更容易理解的方式使用的吗?

下面是我使用jsp struts2迭代器的替代方法。即使在这种方法中,我也没有得到源上的值。该代码适用于DOM但不适用于源代码。

 <html>
    <head>
       <script type="text/javascript">
          $.get('test/newHeader');
       </script>
    </head>
    <body>
       <s:iterator value="%{menuOptions.get('Home_Improvement').productgroup}" var="productGroupVar">
            <a href="<test:sRelativeUrl url='/${productGroupVar.groupId}'/>">${productGroupVar.name}</a>
        </s:iterator>
    </body>
 </html>

1 个答案:

答案 0 :(得分:0)

  

此锚点未在页面源中看到,因此无法抓取。

Google能够抓取从Javascript生成的网页。因此,您的陈述不正确。因此,如果sitemap.xml中有/那些页面的URL可用,则没有问题。