路由到新页面时onload无法正常工作

时间:2014-12-30 23:25:21

标签: javascript onload

假设我在" Home"网站的页面。现在,当我点击" AboutUs"从主页本身链接,我想在"关于我们"上改变DIV元素的位置。页。但是下面的代码没有任何反应。

//HTML Code of Home page
<html>
<head></head>
<body>
<a href="AboutUs.html" onclick="NavTo();">About Us</a>
<script type="text/javascript" src="Scripts/javascript code.js"></script>
</body>
</html>

//javascript code.js
function NavTo() {
    document.getElementById("OurServices").onload = function() {
        alert("hello");
        document.getElementById("OurServices").style.position = "fixed";
    }
}

我已经把#34;警告&#34;代码,以便我知道是否在该函数内执行某些事情。但是没有显示警报,这意味着该功能没有被执行。 我在这里做错了什么?

3 个答案:

答案 0 :(得分:3)

您需要将警报代码放在AboutUs.html文件中。

答案 1 :(得分:1)

这是因为在js文件运行时已经加载了页面。

  1. 一个好的做法是将外部js文件引用放在html文件中body标记的末尾之前。

  2. 请同时确保html格式正确,请不要将&#34; head&#34;标记到&#34; body&#34;标签

  3. 此外,您还需要删除onload事件触发器,因为事件实际上不是由onload触发,而是通过单击触发。

  4. 因此,要使您的页面正常工作,js文件应该就像:

    function NavTo(){
         alert("hello");
     }; 
    

    您的html文件应如下所示:

        //HTML Code of Home page
       <html>
         <head></head>
         <body>
           <a href="AboutUs.html" onclick="NavTo();">About Us</a>
           <script type="text/javascript" src="Scripts/javascript code.js"></script>
         </body>
       </html>
    

    希望这可以提供帮助。

答案 2 :(得分:0)

@Peter Hearly:非常感谢答案。以下是确切的代码:

//HTML Code of Home page
<html>
<head></head>
<body>
<a href="AboutUs.html?section=OurServices">About Us</a>
<script type="text/javascript" src="Scripts/javascript code.js"></script>
</body>
</html>

//HTML Code of About Us page
<html>
<head></head>
<body onload="NavTo(document.URL);">
<script type="text/javascript" src="Scripts/javascript code.js"></script>
</body>
</html>

//javascript code.js
function NavTo() {
var eqPosition = pageURL.indexOf("=");  //get the position number of "=" sign
var html_id = pageURL.substring(eqPosition+1,pageURL.length);  //get the string to the right side of the "=" sign
//few lines of required code
}