jQuery代码没有在window.location之后调用.替换(url)

jQuery code not called after window.location.replace( url )

本文关键字:替换 调用 url 之后 location 代码 window jQuery      更新时间:2023-09-26

我有一个代码,点击链接('#versionPageFromProdLink')后,将重定向页面到索引页。包含内容的索引页。我想在页面重定向后隐藏这一点,并显示我拥有的下一个div()。

页面被重定向,但是jQuery函数在window.location之后。替换(url);

我将如何能够重定向和调用页面重定向后的jQuery ?

代码:

 jQuery( '#versionPageFrmProdLink').click( function(){
    window.location.replace( url  );
    // jQuery code below is not called, <div id="versionMainContent"> is not hidden 
  jQuery(".versionMainContent").hide("fast", function(){
    jQuery( ".versionProductContent" ).show();
  });   
 });

如上所述,位置。替换意味着"之后"的代码将不会执行。您需要做的是添加一个散列"index.html#divCode"或其他类似的(在这种情况下您也可以使用查询字符串),然后检测onload/on文档准备索引页,然后更新那里的隐藏/显示状态

这根本不可能。

一旦你导航到一个不同的页面,前一个页面,包括它所有的Javascript,都消失了。

您必须在重定向到的页面中处理重定向后的二次执行。

的例子:

第1页

jQuery( '#versionPageFrmProdLink').click( function(){ 
  window.location.replace( url  ); 
}

注意,在重定向期间,您可以在URL中传递查询字符串,以检查下一页的条件。

第2页

现在你重定向到下一页。您可以放置文档。准备好功能并运行所需的

$(document).ready(function () {
    jQuery(".versionMainContent").hide("fast", function(){ 
    jQuery( ".versionProductContent" ).show(); 
});

问题出在你的设计上。重定向会停止执行流。您可以使用ajax进行服务器调用并继续执行。

或者,如果您喜欢,您可以执行重定向并传递URL参数,如?hideVersionMainContent=true,并执行隐藏服务器端。

还有其他方法可以完成任务,但这应该会给你一些想法。

location.replace之后的代码在你离开的页面上运行(如果它曾经运行过;更改location将导航从页面中移开,并且很可能在那里终止您的代码)。

您需要将要显示的信息传递给新页面,并让页面上的代码填充统计信息。有很多方法可以做到这一点:

  • 查询字符串
  • 通过网络存储(sessionStorage可能有意义)
  • cookie(但不要,这不是他们的目的)