我创建了Safari扩展程序来阻止Facebook中的某些元素,我想知道是否可以让它一直阻止。例如,它会在您加载Facebook时阻止元素,但是当您单击左上角的Facebook徽标时,所有元素都会返回,您必须手动重新加载页面才能再次阻止它们。因此,当您点击没有重新加载页面的内容时,基本上所有元素都会返回。
感谢。
这是我的代码。
jQuery(document).ready(function(){
$("#content").find("#sideNav").find("#listsNav").css( "display", "none" );
});
答案 0 :(得分:1)
这完全取决于当你点击徽标时facebook实际上做了什么。
如果它发出了AJAX请求,那么您可以监听该事件并重新隐藏元素。例如:
$( document ).ajaxComplete(function() {
$("#content").find("#sideNav").find("#listsNav").css( "display", "none" );
});
如果它只是运行一些本地javascript,那么你可以听取click事件,然后再次运行你的代码。例如,假设徽标的ID为#logo
...
$("#logo").click(function(){
$("#content").find("#sideNav").find("#listsNav").css( "display", "none" );
});
此外,正如Satpal所建议的那样,ID对于页面来说是唯一的,因此您不需要以困难的方式找到它们,只需直接引用它们:
$("#listsNav").hide();
答案 1 :(得分:0)
jQuery(document).ready();
仅在DOM准备好时调用。
facebook正在使用AJAX调用来获取新内容。您还必须将侦听器绑定到监视更改的DOM。
这可能会对您有所帮助:Is there a JavaScript/jQuery DOM change listener?