我编写了以下 javascript 来检测引荐来源网址是否与我的产品表中的网址匹配。然后我们向下滚动页面到相关产品。实际的滚动部分正常工作,问题出在 if 语句中。
$("tr td:first").each(function(){
var product_href = $(this).find("td a:eq(0)");
if(product_href.length && document.referrer.indexOf(product_href.attr("href")) == 1){
$(this).scrollTo({
easing: 'easeOutQuad',
offsetTop: -40,
target: $(this)
}).click();
}
});
当我alert(document.referrer + ' | ' + product_href.attr("href"));
在 IF 语句上方添加时,我得到
http://localhost/product/product-uri | /product/product-uri
滚动到插件
$.fn.scrollTo = function(options) {
var defaults = {
target : false,
speed : 400,
easing: 'swing',
offsetTop: -20,
offsetLeft: 0
};
var opts = $.extend({}, defaults, options);
if(this.length > 0){
var elem = this;
// Element instance specific actions
$(elem).each(function() {
var dis = $(this);
var settings = $.meta ? $.extend({}, opts, dis.data()) : opts;
var url = $(dis).attr("href");
var anchor = '';
if(url && url.indexOf("#") != -1 && url.indexOf("#") == 0) {
anchor = $(this.hash);
} else
anchor = $(settings.target);
$(dis).bind('click', function(){
$('html, body').animate({
scrollTop: (anchor.offset().top + parseInt(settings.offsetTop,10)),
scrollLeft: (anchor.offset().left + parseInt(settings.offsetLeft,10))
}, settings.speed, settings.easing);
});
});
}
return this;
};