【问题标题】:Simulate click of <a> element without getting redirected模拟点击 <a> 元素而不被重定向
【发布时间】:2016-12-14 16:24:33
【问题描述】:

所以我试图在此处循环遍历我的所有书签https://supermariomakerbookmark.nintendo.net/bookmarks(您可能看不到它,因为您可能没有为帐户/课程添加书签)并取消书签他们。但是,问题在于,每次我取消对课程添加书签时,我都会重定向回我的书签页面这会取消我从控制台运行的脚本。

我正在迭代的所有元素都有“按钮删除链接”类,如果有帮助,还设置了一个 href 元素。

我不知道如何防止这些重定向发生,希望有人能提供帮助。这是我的基本代码:

var buttons = document.getElementsByClassName("button delete link")
for(var i = 0; i < buttons.length; i++) {
   buttons.item(i).click()
}

有谁知道我做错了什么?

【问题讨论】:

  • 你试过html元素中的onclick吗?它优先于href,对吗?你可以做一个 event.preventdefault()
  • href 一定是问题吗?如果重定向是从 onclick 事件内部发生的怎么办@PrashanthBenny
  • 如果是这种情况,点击事件中的return false 会有所帮助
  • @PrashanthBenny 我可以将它附加到点击事件中吗?这听起来不可能。我该怎么做?
  • &lt;button onclick="myFunction()"&gt;Click me&lt;/button&gt; JS:function myFunction(){ statements; return false;}

标签: javascript for-loop redirect click iteration


【解决方案1】:

我相信你可以尝试的是:

var buttons = document.getElementsByClassName("button delete link")
for(var i = 0; i < buttons.length; i++) {

     buttons.item(i).addEventListener("click"‌​, function(event){ event.preventDefault() });
}

此代码为您的所有buttons 添加一个事件侦听器,禁止默认行为(锚定行为),然后您可以添加更多代码来执行其他操作或调用其他函数...

例子:

var buttons = document.getElementsByClassName("button delete link")
for(var i = 0; i < buttons.length; i++) {

     buttons.item(i).addEventListener("click"‌​, function(event){
                        event.preventDefault();
                        unbookmarkAcourse();
                      }
     );
}

function unbookmarkAcourse(){//*** your code...}

【讨论】:

  • 理论上,这听起来不错,但我如何获得取消课程书签的代码?
  • 请向我们展示您的 HTML,以便我可以判断是否有正在调用的函数实际设置和取消设置...它可能是脚本中的事件侦听器...您是否有权访问页面代码?我的意思是你是那个项目的开发者还是你试图从外部访问它?
  • 我肯定不是该项目的开发人员。 Super Mario Maker 是 Nintendo 的一款游戏,书签网站可让您轻松“书签”课程/关卡以供以后玩。我希望以快速简便的方式取消对我拥有的所有内容的书签。查看源代码是否足以获取您的 HTML?
  • 所以你试图用你的代码改变商业网站的功能,在这种情况下,你必须检查是否有一个 API 可以接受这种请求并与之交互,或者方式它发送unbookmark 请求并检查您是否可以发送多个...那是因为您正在处理第 3 方服务器,并且他们只允许您通过前端访问。
  • 我只想运行代码但防止重定向。这当然不可能。
猜你喜欢
  • 2012-07-26
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
  • 2013-09-12
  • 2011-05-31
  • 2019-11-08
  • 2022-01-05
  • 2021-05-03
相关资源
最近更新 更多