我希望有效地拦截对 .scrollTo 的任何调用并检查该元素是否是某个元素,以便我可以阻止浏览器滚动到该元素。运行 .scrollTo 的 JavaScript 文件不受我控制,因此需要拦截它。
这是我到目前为止的代码:
var oScrollTo = scrollTo;
HTMLElement.prototype.scrollTo = function(){
var scrollId = this.id;
if ( scrollId !== 'id-of-element') {
console.log("yes");
$(scrollId).oScrollTo();
} else {
console.log("no");
}
};
它基本上是这个答案的组合:https ://stackoverflow.com/a/1740510和这个答案:https ://stackoverflow.com/a/19209665
目前,它拦截 .scrollTo 调用并记录“是”,如果它不是匹配元素并且它是“否”。
但是,当记录“是”但没有记录时,它仍应以正常方式运行 .scrollTo。任何关于我如何实现这一目标的想法都将不胜感激!谢谢!