Javascript 有没有办法防止盖茨比在单击<;a>;没有href的元素?
我正试图在现有的盖茨比网站上创建一个捐赠页面。第三方捐赠表单脚本会生成一个文本按钮,用于选择其他付款方式。虽然其他交互元素是按钮,功能与预期相同,但此元素没有href。当点击链接时,当盖茨比试图使用标签进行路由时,页面会刷新,而不是像预期的那样显示插件的模式。有没有办法防止盖茨比在生成的链路上强加任何类型的路由器功能 我的第一次尝试是将gatsby-browser.js与onPreRouteUpdate一起使用,比如Javascript 有没有办法防止盖茨比在单击<;a>;没有href的元素?,javascript,gatsby,Javascript,Gatsby,我正试图在现有的盖茨比网站上创建一个捐赠页面。第三方捐赠表单脚本会生成一个文本按钮,用于选择其他付款方式。虽然其他交互元素是按钮,功能与预期相同,但此元素没有href。当点击链接时,当盖茨比试图使用标签进行路由时,页面会刷新,而不是像预期的那样显示插件的模式。有没有办法防止盖茨比在生成的链路上强加任何类型的路由器功能 我的第一次尝试是将gatsby-browser.js与onPreRouteUpdate一起使用,比如 export const onPreRouteUpdate = ({ loca
export const onPreRouteUpdate = ({ location, prevLocation }) => {
if (location.pathname === 'donate' && prevLocation === 'donate') {
return;
}
}
但实际上,我找不到任何生命周期方法对链接点击做出反应。我怎样才能让盖茨比只注意它关于特定链接的p和q,或者任何空的href或#标记?提前感谢您提供的任何见解 据我所知,盖茨比使用的jsx可能是从babel编译而来的(这意味着网站是用虚拟dom动态设置的,即React) 有两种方法。在Web应用程序运行后将JS注入其中,或者在React trans编译虚拟dom之前对其进行内部解决 您要做的是按Id抓取按钮并覆盖其默认行为
export const onPreRouteUpdate = ({ location, prevLocation }) => {
if (location.pathname === 'donate' && prevLocation === 'donate') {
return;
}
}
这张纸条肯定会把你转到“捐赠”页面
您可能希望将页面路由到其当前位置
下面是一篇关于如何做到这一点的文章
您可能要做的另一件事是完全删除事件侦听器
下面是我删除一个窗口按键事件的示例
根据您的代码调整它
return () => { window.removeEventListener('keydown', onKeyDown) }