onclick:改变位置后做一些事情

onclick: do something after changing location

假设我要执行以下操作:单击 'div' 时,更改到另一个位置(好像是...)然后执行某项操作。我试过这个代码:

<div onclick="location.reload();location.href='...';togglebox('#ident')">Title</div>

其中 ident 是新位置中对象的标识符 href='...'togglebox 是脚本中定义的函数。但是浏览器似乎在更改位置之前尝试完成 togglebox('#ident'),因此输出不是预期的。例如,如果我尝试

<div onclick="location.reload();location.href='...';console.log(5)">Title</div>

然后 5 在更改位置之前立即出现,而我希望浏览器首先更改位置然后显示 5

请问这个逆序有什么解决方法吗?

欢迎任何建议

一种方法是使用查询字符串来告诉目标页面要做什么。然而,如果你想要一个几乎完全按照你的要求做的 hack,你可以这样做:

(这在您当前页面的点击事件处理程序中)

window.location.href = '...'; // Go to another page in your site
localStorage.setItem('exec',"yourCodeInQuotes()");

现在,目标页面应该准备好处理您在 localStorage 中提到的 ident,或者直接评估代码。无论哪种方式,您都需要目标页面来预测即将到来的数据。

(进入目标页面)

var message = localStorage.getItem('exec'); // Will get whatever you stored
eval(message); // Will attempt to run it as JavaScript
$('#'+message); // Or find it if it was your ident and do stuff...