使用window.location.assign加载页面后是否可以调用javascript函数?我有这个代码。
<script language="javascript" type="text/javascript">
function Loadspirit(){
window.location.assign("spirituality.php");
ReadEnglish();
}
</script>
我加载页面然后调用ReadEnglish(),这是flexity.php中定义的函数。该功能不执行。什么是使函数执行的方法?
答案 0 :(得分:3)
一旦分配了新的window.location,浏览器就会开始在当前浏览器窗口中加载新页面。这会停止在此窗口中执行所有javascript并开始加载新页面。只有新页面中的javascript才能从该点开始运行。如果在加载新页面后需要一个函数,则必须将该代码放在新页面中。如果希望该函数始终在新页面中运行,则可以在该新页面中设置代码,以便在加载页面时始终运行该函数。
如果您只希望新功能在从此特定上下文调用时在新页面中运行,那么您需要将一些信息传递到新页面,并且新页面中的代码需要查找该信息以决定是否运行ReadEnglish()函数。您可以将信息传递到新页面的典型方法是
如果这不是持久性设置,则经常使用查询参数,而是在特定时间偶尔执行此选项。
如果这是一个更持久的设置,通常会使用Cookie,因为Cookie会持续存在,直到您告诉它消失为止。
答案 1 :(得分:2)
我认为你不能那样做。您最好的选择是使用jquery库,然后执行以下操作:
$("body").load("spirituality.php", function() {
ReadEnglish();
});
答案 2 :(得分:0)
没有。过去window.location.assign
的javascript永远不会被阅读。这个函数实际上让你离开页面并导航到参数。
如果你想留在当前页面并且可以访问spirituality.php
上的一些javascript,你需要通过AJAX加载它。如果您实际上尝试导航到'spirituality.php'并加载ReadEnglish();
,则需要在spirituality.php
上调用该函数
答案 3 :(得分:0)
不确定此页面上的较早答案。
在chrome 79和ffox 72中,此代码:
<html>
<script>
window.location.assign( 'https://codepen.io' );
for (var i=0; i<1000; i++) {
console.error( 'STILL HERE???', i );
}
</script>
</html>
将在更改网址之前完成所有1k控制台调用。