我使用jQuery
和YQL
來獲取網站的內容,並在頁面上顯示某個元素,在此例中爲table
元素。我也有使用jQuery QuickSearch插件設置的搜索功能。AJAX加載內容後加載腳本?
這個偉大的工程,現在的問題...
看來,搜索腳本加載AJAX
內容的getter獲取內容之前。我認爲腳本會緩存數據,以便搜索更容易。由於它在內容存在之後加載,它不搜索任何內容,並且不起作用。有沒有什麼辦法加載搜索腳本AFTERAJAX
內容被加載?
我已經試圖通過在JQ的ready
函數調用它:加載內容之前
$(document).ready(function() {
但是仍然加載。我AJAX
下面的腳本是:
<script type="text/javascript">
$(document).ready(function() {
var container = $('#content');
function doAjax(url) {
if (url.match('^http')) {
$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
"q=select%20*%20from%20html%20where%20url%3D%22"+
encodeURIComponent(url)+
"%22&format=xml'&callback=?",
function (data) {
if (data.results[0]) {
var fullResponse = $(filterData(data.results[0])),
justTable = fullResponse.find("table");
container.append(justTable);
} else {
var errormsg = '<p>Error: could not load the page.</p>';
container.html(errormsg);
}
});
} else {
$('#content').load(url);
}
}
function filterData(data) {
data = data.replace(/<?\/body[^>]*>/g, '');
data = data.replace(/[\r|\n]+/g, '');
data = data.replace(/<--[\S\s]*?-->/g, '');
data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g, '');
data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g, '');
data = data.replace(/<script.*\/>/, '');
data = data.replace(/<img[^>]*>/g, '');
return data;
}
doAjax('url_goes_here');
});
</script>
我試圖解釋這是什麼意思。我應該首先調用'.ready()',然後調用AJAX,然後搜索將在AJAX加載後加載? – Charlie 2012-01-11 01:33:57
這意味着如果你正在調用體內腳本中的.ready()函數,那麼它立即運行,應該從頭開始運行。 – 2012-01-11 02:35:02
這兩個腳本都在頭上。 – Charlie 2012-01-11 02:38:20