在window.location.replace(url)之后没有调用的jQuery代码
我有一个代码,点击链接(’#versionPageFromProdLink’)后,将页面重定向到索引页面。 索引页面包含内容。 我希望在重定向页面后隐藏它并显示我拥有的下一个div()。
该页面被重定向但是window.location.replace(url)之后的jQuery函数; 行不被调用。
如何在页面重定向后重定向并调用jQuery?
码:
jQuery( '#versionPageFrmProdLink').click( function(){ window.location.replace( url ); // jQuery code below is not called, is not hidden jQuery(".versionMainContent").hide("fast", function(){ jQuery( ".versionProductContent" ).show(); }); });
如上所述,location.replace意味着代码“之后”它将不会执行。 您需要做的是添加一个哈希“index.html #divCode”或其他一些(在这种情况下您也可以使用查询字符串),然后检测onload / on document-ready for index page,然后更新那里的隐藏/显示状态。
这基本上是不可能的。
导航到其他页面后,上一页(包括其所有Javascript)都将消失。
在重定向到的页面中重定向后,您必须处理辅助执行。
例:
第1页
jQuery( '#versionPageFrmProdLink').click( function(){ window.location.replace( url ); }
请注意,在重定向期间,您可以在URL中传递查询字符串以检查下一页中的条件。
第2页
现在您已重定向到下一页。 您可以放置document.ready函数并运行所需的操作。
$(document).ready(function () { jQuery(".versionMainContent").hide("fast", function(){ jQuery( ".versionProductContent" ).show(); });
你的设计就是问题所在。 重定向会停止执行流程。 您可以使用ajax进行服务器调用并继续执行。
或者,如果您愿意,可以执行重定向并传递URL参数,例如?hideVersionMainContent = true并执行隐藏服务器端。
还有其他方法可以完成任务,但这应该会给你一些想法。
您的location.replace
之后的代码在您要离开的页面上运行(如果它一直运行;更改location
导航离开页面,可能会在那里终止您的代码)。
您需要传递信息以显示到新页面,并在新页面上填写代码以填充统计信息。 有很多方法可以做到这一点:
- 在查询字符串上
- 通过网络存储 (
sessionStorage
可能有意义)
- Cookies(但不是,它不是他们的用途)