我正在使用jQuery
并YQL
获取网站的内容并在页面上显示某个元素,在本例中为table
元素.我还使用jQuery QuickSearch插件设置了搜索功能.
这很好用,现在问题......
似乎在AJAX
内容getter获取内容之前加载搜索脚本.我认为该脚本然后缓存数据,因此搜索更容易.因为它是在内容存在之后加载的,所以它不搜索任何东西而且它不起作用.有什么办法来加载搜索脚本后的AJAX
内容加载?
我已经尝试通过ready
jQ中的函数调用它:
$(document).ready(function() {
Run Code Online (Sandbox Code Playgroud)
但是在内容加载之前仍然会加载.我的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>
Run Code Online (Sandbox Code Playgroud)
ade*_*neo 13
不确定我真的得到了问题,但是在内容加载Ajax之后加载脚本你可以这样做:
$.ajax({
url: url,
data: data,
success: function() {
//success loading content
},
error: function() {
//error loading content
},
complete: function() {
$.getScript("/scripts/mysearchscript.js", function() {
alert('loaded script and content');
});
}
});
Run Code Online (Sandbox Code Playgroud)