[英]Jquery selector validity/scope
JQuery的新手,但想用它在后台预取html页面(每个页面大约四个@大约4kb),但是我不太确定自己是否正确。
这是我想出的代码:
$(document).ready(function() {
var my_url;
$('[rel=prefetch][href$=.html]')
.each(function() {
my_url = $(this).attr('href')
$.ajax({
url: my_url,
dataType: 'text',
headers:{'X-Moz': 'prefetch'}
});
});
});
基本上,我在文档的开头有一些带有'rel = prefetch'的链接,并且当浏览器不是Firefox时,会插入上面的代码片段。 当检测到“ X-Moz:prefetch”标头时,我的应用程序呈现的内容有所不同,因此将其按需发送到此处。
该代码应该只获取html和缓存,而无需处理脚本,而我相信'dataType:text'应该得到照顾。
会对此表示赞赏并提出建议。 查询是:
$(document).ready(function() { $('[rel=prefetch][href$=.html]') .each(function() { var my_url = $(this).attr('href') $.ajax({ url: my_url, dataType: 'text', headers:{'X-Moz': 'prefetch'} }); }); });
得到它的工作。 问题是因为当我使用google api链接到JQuery时,jquery片段未运行。 当我直接从我的网站提供服务时,在这种情况下,所有js都被组合到一个文件中,它可以工作。
当我在Safari中使用开发人员工具时,我注意到了这一点。
完整的代码是:
(function ($) {
$(document).ready(function() {
var this_browser, my_url;
// Prefetch pages for non Firefox browsers
this_browser = new Browser();
if ( this_browser.getBrowserName() != this_browser.BROWSER_FIREFOX ) {
// Asynchronously prefetch html as text strings
// I.E., do not process scripts in incoming html
// See: http://ernstdehaan.blogspot.com/2009/08/prefetching-files-using-jquery.html
$('link[rel="prefetch"][href$=".html"]')
.each(function() {
my_url = $(this).attr('href');
$.ajax({
url: my_url,
dataType: 'text',
headers: {'X-Moz': 'prefetch'}
});
});
}
});
}(jQuery));
Safari提醒我“(jQuery)”位生成错误。
原来,这是因为代码在加载JQuery之前就被触发了。
还忘了说
$('head link[rel="prefetch"][href$=".html"]')
限制选择器。
我还删除了浏览器检测,仅将其用于所有浏览器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.