Я использую jQuery
и YQL
для получения содержимого веб-сайта и отображения определенного элемента на странице, в данном случае, элемента table
.У меня также есть функция поиска, настроенная с помощью плагина jQuery QuickSearch .
Это прекрасно работает, и теперь проблема ...
Похоже, что поисковый скрипт загружается до того, как получатель контента AJAX
получит контент.Я думаю, что сценарий затем кэширует данные, чтобы их было легче искать.Поскольку он загружается после того, как контент есть, он ничего не ищет и не работает.Есть ли способ загрузить поисковый скрипт ПОСЛЕ загружен контент AJAX
?
Я уже пытался вызвать его с помощью функции ready
в jQ:
$(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>