[用window.location.assign加载页面后调用javascript函数

问题描述 投票:1回答:4

是否可以在使用window.location.assign加载页面后调用javascript函数?我有这个代码。

<script language="javascript" type="text/javascript">
function Loadspirit(){
  window.location.assign("spirituality.php");
  ReadEnglish();
}
</script>

我加载页面,然后调用ReadualEnglish(),该函数在Spirituality.php中定义。该函数不执行。使函数执行的方式是什么?

javascript function window.location assign
4个回答
4
投票

分配新的window.location后,浏览器就会开始在当前浏览器窗口中加载新页面。这将停止在此窗口中执行所有JavaScript,并开始加载新页面。从那时起,只有新页面中的javascript才能运行。如果要在新页面加载后使用函数,则必须将该代码放入新页面。如果要让该功能始终在新页面中运行,则可以将新页面中的代码设置为在加载页面时始终运行该功能。

如果只希望在从特定上下文中调用新函数时在新页面中运行该函数,那么您需要将一些信息传递给新页面,并且新页面中的代码需要查找该信息以决定是否是否运行ReadEnglish()函数。将信息传递到新页面的典型方法是

  1. 查询URL中的参数(URL中?符号后的项目,例如“?run = English”)。
  2. cookie中设置的信息
  3. [新页面中已知且来源相同的其他Windows /框架中的Javascript变量。

如果不是持久性设置,而是在特定时间偶尔执行此选项,通常会使用查询参数。

如果这是一个更持久的设置,通常会使用Cookie,因为cookie会一直存在,直到您告诉它消失为止。


1
投票

我认为您无法做到。最好的选择是使用jquery库,然后执行以下操作:

$("body").load("spirituality.php", function() {
    ReadEnglish();
});

0
投票

没有过去window.location.assign的javascript将永远不会被读取。该功能实际上使您离开页面并导航至参数。

如果您希望停留在当前页面上并可以访问spirituality.php上的某些JavaScript,则需要通过AJAX进行加载。如果您实际上是想导航至'spirituality.php'并加载ReadEnglish();,则需要在spirituality.php]上调用该函数


0
投票

不确定此页面上的较早答案。

© www.soinside.com 2019 - 2024. All rights reserved.