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...
假设我要执行以下操作:单击 '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...