• 关于JS中引用其它JS的问题


    由于我把许多JS函数分散到各个文件,造成一个JS需要另一个JS的函数才能运行。一种解决方案是使用运行时追加块的方法,在JS中追加另一个JS,代码如下:
    new_element=document.createElement("script");
    new_element.setAttribute("type", "text/javascript");
    new_element.setAttribute("src", "另一个.js");
    document.body.appendChild(new_element);
    function b1()
    {
     a1("B1");
    }
    另一个JS文件内容如下:
    function a1(sInfo)
    {
     alert("A1 - " + sInfo);
    }

    但这种方法存在这几个问题:
    ·JS文件引用的声明必须放在</body>之后
    不能这样写
    <html>
    <head>
    <script src=b1.js></script>
    </head>
    <body>
    </body>
    </html>
    而只能这样写
    <html>
    <head>
    </head>
    <body>
    </body>
    <script src=b1.js></script>
    </html>
    后来找到一种解决方案,在body中的onload事件来处理
    <script>
    function loadjs()
    {
     loadjs4b1();
    }
    </script>
    ……
    <body onload="loadjs();">
    b1.js中写成子程序loadjs4b1:
    function loadjs4b1()
    {
     new_element=document.createElement("script");
     new_element.setAttribute("type","text/javascript");
     new_element.setAttribute("src","a1.js");
     document.body.appendChild(new_element);
    }

    最后又发现,搞了半天,还不如这种简单直观:
    直接在b1.js中加入这句话,也不要new_element、appendChild等操作了,也不要子程序,body中也不必设onload处理代码。
    document.write('<script type="text/javascript" src="a1.js"></'+'script>'); 

    测试后发现不必把script拆分也是可行的

    document.write("<script type=\"text/javascript\" src=\"a1.js\"></script>"); 

    ·在JS文件中直接运行另一个JS的函数还是不行,而要等页面全部装载完成才行
    如JS中这样代码不成功
    function b1()
    {
     a1("B1");
    }
    b1();
    而HTML中这样的代码就行
    <input type=button value=ok onclick="b1();" />

    可以使用上面的一种方法:即在body onload中执行,可能是没有什么差别。

  • 相关阅读:
    完全备份、差异备份以及增量备份的区别(转)
    Backup Exec Inventory 与Catalog的含义(转载)
    从客户端中检测到有潜在危险的Request.Form值的解决办法
    IQueryable与IEnumberable的区别(转)
    SQL递归查询(with cte as) 物料分解
    Http权威指南笔记(二) Http状态码大全
    Http权威指南笔记(一) URI URL URN 关系
    echarts在.Net中使用实例(二) 使用ajax动态加载数据
    echarts在.Net中使用实例(一) 简单的Demo
    sql显示12个月数据
  • 原文地址:https://www.cnblogs.com/yzx99/p/1273858.html
Copyright © 2020-2023  润新知