2
我有一個帶有標題導航的webform。如何使谷歌抓取工具生成JavaScript可生成HTML索引?
要生成此標題導航,我做一個AJAX呼叫到的Java類,並得到一個JSON字符串作爲響應。
I解析字符串並在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>
是否有任何真正的需要通過JavaScript生成鏈接?如果你想讓你的html「可抓取」,我強烈建議在服務器端生成輸出,而不是試圖破解這些東西。 –
鏈接的內容來自內容系統。我們在任何時候都不知道,會有多少鏈接。它可以隨時根據業務需求進行更改。所以我們不能在HTML上添加錨定標記,因爲我們不知道會有多少個錨定標記。第二種方法可以是在後端生成HTML,這絕不是推薦的方式。 –
您可能想要閱讀這篇文章:[製作Ajax應用程序可抓取](https://developers.google.com/webmasters/ajax-crawling/)。 – jfriend00