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

时间:2011-10-18 02:54:40

标签: javascript jquery

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

页面被重定向但是window.location.replace(url)之后的jQuery函数;行不被调用。

如何在页面重定向后重定向并调用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();
  });   

 });

5 个答案:

答案 0 :(得分:1)

这根本不可能。

导航到其他页面后,上一页(包括其所有Javascript)都已消失。

答案 1 :(得分:1)

如上所述,location.replace表示代码“之后”不会执行。您需要做的是,附加一个哈希“index.html #divCode”或其他一些(在这种情况下您也可以使用查询字符串),然后检测onload / on document-ready for index page,然后更新那里的隐藏/显示状态。

答案 2 :(得分:0)

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

示例:

Page 1

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

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

第2页

现在您已重定向到下一页。您可以放置​​document.ready函数并运行所需的内容。

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

});

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

location.replace之后的代码在您离开的页面上运行(如果它一直运行;将location导航更改为远离页面,可能会在那里终止你的代码)。

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

  • 在查询字符串
  • 通过web storagesessionStorage可能会有意义)
  • Cookies(但不是,它不是他们所要做的)