假设我想要执行以下操作:点击' 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
。
此撤销订单解决方案是否有任何解决方案?
欢迎任何建议
答案 0 :(得分:2)
一种方法是使用查询字符串来告诉目标页面要做什么。但是,如果你想要的hack几乎完全符合你的要求,你可以这样做:
(这是您当前页面的点击事件处理程序)
window.location.href = '...'; // Go to another page in your site
localStorage.setItem('exec',"yourCodeInQuotes()");
现在,目标网页应该准备好处理您在ident
中提到的localStorage
,或者直接评估代码。无论哪种方式,您都需要目标页面来预测即将到来的数据。
(这在目的地页面中)
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...