【发布时间】:2019-06-04 03:36:09
【问题描述】:
我想构建一个简单的 Google 扩展程序,如果它包含列入黑名单的单词,它将阻止用户提交推文。这要求我可以拦截提交它的“Tweet”点击。
查看 Twitter 页面后,我目前在内容脚本中使用以下代码:
$('button.tweet-action').click(function(e) {
console.log(e);
e.preventDefault();
e.stopPropagation();
return false;
});
当我单击“Tweet”时,我会得到控制台输出,但仍会提交推文。有趣的是,当我只使用$('button') 时,它可以与许多按钮一起使用。例如,我不能再删除一条推文。所以它只是不适用于提交新推文,我不知道为什么会这样。这是来自 Twitter HTML 页面的 sn-p:
如何拦截和停止推文的提交。
更新:我已尝试按照以下建议拦截表单提交。由于表单没有 id,所以我使用了类选择器:
$('.tweet-form').submit(function(e) {
console.log(e);
e.preventDefault();
e.stopPropagation();
return false;
});
但它不起作用。对于一个简单的测试,我尝试了$('.tweet-form').css(...),它成功地改变了一些风格变化。但是拦截提交不起作用;我什至没有看到控制台输出。可能是因为表单标签之间没有type="submit"。
【问题讨论】:
-
挂钩到
form元素的submit事件,而不是点击按钮 -
该表单是否真的尝试提交,或者网站的 JS 添加了一些点击处理程序?
-
@CertainPerformance
type="button"让我觉得是后者。 -
@Christian 您能否澄清一下,以便我们确定哪种解决方案有效?请不要发布然后立即去 AFK,这样在需要澄清时回答问题的可能性就会大大降低
-
@CertainPerformance 请查看我的更新。是的,任何地方都没有
type="submit",所以我假设按钮中添加了一个点击处理程序。这是否意味着这是一个死胡同或对我来说。我可以使用$('button')拦截所有其他按钮,例如Delete或Cancel或诸如此类。可能是因为表格内没有。
标签: javascript jquery twitter