Javascript window.onload函数未在新链接文件

时间:2016-06-14 12:04:13

标签: javascript onload

我有一个双语网站,我想在语言链接中切换href。当访问者首次访问该站点时,它会加载“index.php”文件。在该文件的HEAD部分,它调用一个javascript文件,其中包含以下代码:

window.onload = function() {

  var eng = document.getElementById("lang");
  var fn = location.pathname.substring(1)
  if (fn.match("En.php")) {
      eng.href = "index.php";
  } else {
      eng.href = "indexEn.php";
  }
}

'index.php'文件它有一个'a'链接元素,其空白href(#)的id为'lang',它是英文php文件的链接。当我单击该链接时,它会像js代码所指示的那样加载IndexEn.php文件。

indexEn.php也在HEAD部分调用相同的javascript,并且具有相同id的相同'a'链接,但是onload函数没有运行,所以它没有设置正确的href。我已经在onload函数中使用了一个警告来测试它,当indexEn.php加载时它没有显示。我以为每次调用文件时都会触发onload函数或者我误解了?

1 个答案:

答案 0 :(得分:-1)

听起来你真的只需要在文档准备就绪时发生这种情况。

试试这个jQuery。

$(document).ready(function(){ 
    var eng = $("#lang");
    var fn = document.location.pathname.substring(1);
    if (fn.match("En.php")) { 
        eng.attr('href', "index.php"); 
    } else { 
        eng.attr('href', "indexEn.php");
    }
});

非jquery代码。放在页面底部,以便您可以使用文档选择器。

    var eng = document.getElementById("lang");
    var fn = document.location.pathname.substring(1);
    if (fn.match("En.php")) { 
        eng.href = "index.php"; 
    } else { 
        eng.href = "indexEn.php";
    }