我有两个JS文件,一个JS文件套用另一个JS文件
JS文件一格式:
document.writeln("<table border=\"0\"width=\"100%\">");
document.writeln("  <tr>");
document.writeln("    <td width=\"100%\"><SCRIPT language=JavaScript src=\"\/top.js\"><\/SCRIPT><\/td>");
document.writeln("  <\/tr>");
document.writeln("<\/table>")
被嵌套的JS文件:top.js
document.writeln("|<a href=\"http://www.123.com/bus/\" target=_self><font color=#ff3300>公交查询</font><\/a>");
document.writeln("|<a href=\"http://www.123.com/tools/calendar.htm\" target=_self>万年历<\/a>");
document.writeln("|<a href=\"http://www.123.com/tools/calculate.htm\" target=_self>计算器<\/a>");
但显示出来的效果,top.js中的内容始终不在JS文件一的表格中,而是显示在表格的下方顺着表格下方排列请问如何解决

解决方案 »

  1.   

    没有测试你的代码, 既然你得出一个不符合预期的结果, 显然是你所用的浏览器没有按照你的意图执行上述代码. 一个改进建议是, 命名你那个TABLE, 然后, 在top.js中, 使用GetElementById(TABLE ID)去定位那个TABLE, 再将内容写入到TABLE的指定位置上.
      

  2.   

    如果你用a.js来调用b.js里的方法,那么b.js必须先加载,你才可以调用,有时甚至不能调用,不是加载顺序的问题的话,你就先把他们写到一个.js文件中看看能不能跑通,建议不要跨.js来调用方法
      

  3.   

    我估计是加在顺序的问题,今天也翻看了相关的一些资料,有人做测试是加在有顺序的。写到一个js文件里不行啊,因为不是调用子js的方法
      

  4.   

    调用者JS1:
    document.writeln("<table border=\"0\" width=\"100%\">");
    document.writeln(" <tr>");
    document.writeln(" <td width=\"100%\"><div id=\"Here\"><SCRIPT language=JavaScript src=\"\/top.js\"><\/SCRIPT><\/div><\/td>");
    document.writeln(" <\/tr>");
    document.writeln("<\/table>")注意在TABLE的TD中, 增加了一个DIV,ID是"Here", 用来定位你要用JS动态添加的内容.被调用者JS2
    var Target = document.getElementById("Here");
    if (Target)
      {
      Target.innerHTML = "|<a href=\"http://www.123.com/bus/\" target=_self><font color=#ff3300>公交查询</font><\/a>";
      Target.innerHTML += "<br>|<a href=\"http://www.123.com/tools/calendar.htm\" target=_self>万年历<\/a>";
      Target.innerHTML += "<br>|<a href=\"http://www.123.com/tools/calculate.htm\" target=_self>计算器<\/a>";
      }
      

  5.   


    如果被调用者JS2是第三方的,无法修改呢?
    不可否认这个是一个解决方法,应该有效,望Anonymouser兄弟能帮我解决被调用者是第三方的js。实在解决不了的话也结贴给分了!
      

  6.   

    因为你这个JS调用不是同步的
    当你document.write(....)中包含JS时候
    这个JS是异步加载 这个时候将继续执行后面的document.write(...)
    然后上面哪个JS加载好了才开始执行这个JS中的代码 
    因为都是调用document.write的文档流 这样就产生了输出结果的先后次序个人认为解决办法是把2段JS合在一个文件里 
      

  7.   

    哦前面没看你后面说的
    我想了下可以这样document.write重新分段封装<script>快中 这样都是同级块应该就能保证执行顺序了
    <script>
    document.writeln("<table border=\"0\" width=\"100%\">");
    document.writeln(" <tr>");
    document.writeln(" <td width=\"100%\"><div id=\"Here\">")
    </script>
    <SCRIPT language=JavaScript src="top.js"></SCRIPT>
    <script>
    document.writeln("<\/div><\/td>");
    document.writeln(" <\/tr>");
    document.writeln("<\/table>")
    </script>