重定向到某个页面,然后执行事件或操作

时间:2019-05-29 02:37:06

标签: javascript redirect

我有一个带有onlick事件的按钮,该按钮在触发时必须重定向到特定页面,并向特定元素添加类。

使用代码:

window.location.href = "http://localhost:8000/dashboard";

$('p').addClass('active');

我已成功设法将其重定向,但未执行该事件。这是否有可能,因为它在重定向后刷新了DOM。谢谢。

2 个答案:

答案 0 :(得分:0)

在导航期间,您将无法操作其他页面上的DOM元素,因为将不会执行重定向后的代码。而是听您要重定向到的页面上的事件,并从那里确定如何应用active类。

答案 1 :(得分:0)

执行整页导航时,常规的JavaScript执行流程中断。这意味着第一页上的JavaScript无法修改第二页上的DOM,因为导航后不再由浏览器执行。

在实践中,有一些方法可以解决此问题,尽管我不确定它们是否超出了您可能要考虑的范围。 执行此操作的旧方法是使用IFRAME标记将内容加载到其中,并从外部上下文执行所有脚本。如果页面都在同一域中,则外部页面可以进入框架并导致他们导航甚至修改其DOM。

一种更现代的方法是选择一种AngularReact之类的“单页应用”技术。在这些语言中,页面导航无需传统意义上的重定向页面,因此不会以相同的方式中断执行流程。不过,这是一种相当繁琐的方法,并且由于您提到了PHP,所以您可能不会觉得这些方法很有吸引力。

由于使用的是PHP,因此可以将参数传递到第二页,以指示需要进行更改并在PHP中进行处理,例如http://example.com/secondPage.php?useOtherCSS=true。只是想一想,即使不使用JavaScript,它也会朝您的目标迈进。