Javascript Twitter时间线DOM操纵-否定Onclick事件处理程序

Javascript Twitter时间线DOM操纵-否定Onclick事件处理程序,javascript,jquery,dom,twitter,dom-events,Javascript,Jquery,Dom,Twitter,Dom Events,我正在创建一个浏览器扩展,通过向用户的Twitter时间线中的每个推特行添加一些链接来修改Twitter时间线 通常,每当点击tweet行时,Twitter将弹出右侧面板,显示更多信息,但用户单击诸如Retweet、Reply等链接时除外。我不确定Twitter的JavaScript是如何应用于这些链接以防止它们导致面板被打开的,但我想做一些类似的事情。我曾尝试检查谷歌浏览器中的元素,但没有透露事件处理程序 有什么建议吗?事件处理程序可能是通过脚本以编程方式添加的。您可以尝试删除事件处理程序(请

我正在创建一个浏览器扩展,通过向用户的Twitter时间线中的每个推特行添加一些链接来修改Twitter时间线

通常,每当点击tweet行时,Twitter将弹出右侧面板,显示更多信息,但用户单击诸如Retweet、Reply等链接时除外。我不确定Twitter的JavaScript是如何应用于这些链接以防止它们导致面板被打开的,但我想做一些类似的事情。我曾尝试检查谷歌浏览器中的元素,但没有透露事件处理程序


有什么建议吗?

事件处理程序可能是通过脚本以编程方式添加的。您可以尝试删除事件处理程序(请参阅),但克隆相关元素然后隐藏原始元素可能更容易。有关信息,请参阅文档


如果没有任何示例html,我无法真正为您提供一个好的示例,但这里有一个通用的JSFIDLE,我用它来演示这个概念:

事件处理程序可能是通过脚本以编程方式添加的。您可以尝试删除事件处理程序(请参阅),但克隆相关元素然后隐藏原始元素可能更容易。有关信息,请参阅文档


如果没有任何示例html,我无法真正为您提供一个好的示例,但这里有一个通用的JSFIDLE,我用它来演示这个概念:

我通过停止事件传播解决了我的问题。这阻止了事件传播到容器元素的事件处理程序

使用jQuery,我可以应用如下onclick处理程序:

$("#elementId").click(function(event) {
    event.preventDefault();
    event.stopPropagation();
    // other actions
});

我通过停止事件传播解决了问题。这阻止了事件传播到容器元素的事件处理程序

使用jQuery,我可以应用如下onclick处理程序:

$("#elementId").click(function(event) {
    event.preventDefault();
    event.stopPropagation();
    // other actions
});

我很确定他们的脚本没有向我插入的DOM元素添加事件处理程序。更大的问题是,无论用户在哪里单击推特行,都会导致面板打开(除了他们的链接)。我想复制它们的链接的工作方式,这样它们就不会在单击时导致面板打开。我认为事件处理程序位于外部容器(包含所有tweet文本等)上,因此可能正在调用事件处理程序,但链接上的处理程序阻止面板打开。我很确定他们的脚本没有向我插入的DOM元素添加事件处理程序。更大的问题是,无论用户在哪里单击推特行,都会导致面板打开(除了他们的链接)。我想复制它们的链接的工作方式,这样它们就不会在单击时导致面板打开。我认为事件处理程序位于外部容器上(包含所有tweet文本等),因此可能会调用事件处理程序,但链接上的处理程序会阻止面板打开。我建议您研究非jQuery方式来实现这一点,除非您已经计划在扩展中使用jQuery。我不会。:)@Chris:jQuery在整个扩展中用于几个方面。您是对的,仅此案例并不能真正保证它的使用。现在已经过了足够的时间,请务必接受您自己的答案。我建议您研究非jQuery方法来实现这一点,除非您已经计划在扩展中使用jQuery。我不会。:)@Chris:jQuery在整个扩展中用于几个方面。你是对的,光是这个案子并不能保证它的使用。现在已经过了足够的时间,一定要接受你自己的答案。