是不是先声明一个变量,或者实例一个对象传参过去比较好A页面
<script language='javascript'>
var a;
</script>B页面
<script language="javascript" defer>
a = "b";
</script>

解决方案 »

  1.   

    leohuang(LEO),尝试过,没有解决!
      

  2.   

    A页面用AJAX方式装载B、C两个页,你是怎么装载这两个页的呢?所谓的两个页是完整的html文档(即包含<html></html>)吗?试试B/C只包含js代码看看。
    代码贴再详细一些,特别是B/C页面代码以及ajax如何将B/C装载,肯定能解决问题:)
      

  3.   

    是不是你写了一个AJAX里面需要指定位置
    来接受你的返回值?
      

  4.   

    尝试一下
    A页调哪个页
    时候根据你想用A还是用B来判断a="b"
    还是a="c"
      

  5.   

    那就加载进来执行一下window.execScript("脚本");
      

  6.   

    如果在t.htm里加载数据则没有问题,如果在框架的左栏执行t.htm里的函数加载数据则出错:
    测试用例:框架 m.htm
        <frameset framespacing="1" frameborder="0" style="border:none;" oncontextmenu="return false">
          <frameset cols="200,*" frameborder="1" framespacing="5" style="background:buttonface;border-color:buttonface;" oncontextmenu="return false">
            <frame src="l.htm" name="leftMenu" style="border:2px inset;">
            <frame src="t.htm" name="mainContent" noresize style="border:2px inset;">
         </frameset>
        </frameset>左栏 l.htm
    <input type="button" value="a.htm" onclick="top.mainContent.getContent('a.htm');">
    <input type="button" value="b.htm" onclick="top.mainContent.getContent('b.htm');">右栏 t.htm
    <script language="javascript" src="ajaxRv.js"></script>
    <table id="dhDataGridTable" border="0" cellpadding="0" cellspacing="0"><tr><td>数据加载!</td></tr></table>
    <br>
    <input type="button" value="a.htm" onclick="getContent('a.htm');">
    <input type="button" value="b.htm" onclick="getContent('b.htm');">
    <input type="button" value="view temp" onclick="temp();">a.htm
    <table id="dhDataGridTable" border="0" cellpadding="0" cellspacing="0"><tr><td>a.htm</td></tr></table>
    <script defer>
    alert('fisrt js from a')
    </script>
    <script defer>
    temp = function(){alert("second js from a")}
    </script>b.htm
    <table id="dhDataGridTable" border="0" cellpadding="0" cellspacing="0"><tr><td>b.htm</td></tr></table>
    <script defer>
    alert('fisrt js from b')
    </script>
    <script defer>
    temp = function(){alert("second js from b")}
    </script>ajaxRV.js
    // Initialize
    function ajaxInitRV(){
    try
    {
    reqRV = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
    try
    {
    reqRV = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(oc)
    {
    reqRV = null;
    }
    } if(!reqRV && typeof XMLHttpRequest!="undefined")
    {
    reqRV = new XMLHttpRequest();
    } return reqRV;
    }//获得查询资料
    function getContent(url){
    var srs = url.indexOf("?");
    if(srs!=-1){
    url += "&temp="+Math.random();
    }else{
    url += "?temp="+Math.random();
    }
    //alert(url);
    var ajaxRV = null;
    var tempStr = null;
    var reqRV = ajaxInitRV();
    if(reqRV != null)
    {
    reqRV.onreadystatechange = function() {
    if (reqRV.readyState == 4) {
    if (reqRV.status == 200) {
    ajaxRV = reqRV.responseText;
    //alert(ajaxRV);
    document.getElementById("dhDataGridTable").outerHTML = ajaxRV;
    reqRV = null;
    }else{
    document.getElementById("dhDataGridTable").outerHTML = "<table id=\"dhDataGridTable\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>数据加载失败!</td></tr></table>";
    }
    }
    }
    //异步加载
    reqRV.open("GET", encodeURI(url), true);
             reqRV.send();
    }
    }
      

  7.   

    注意:a.htm和b.htm里的两个SCRIPT不能写在一起,格式固定死了。
      

  8.   

    您可以访问:http://www.jxxg.com/dh20156/m.htm
    进行测试!
      

  9.   

    ----------b.htm---
    &nbsp;
    <script language="javascript" defer>
    var a = "c";
    </script>---------a.htm----------
    <span id=aa>
    </span>
    aa.innerHTML = ....
      

  10.   

    更换数据加载方式可以没有上述问题,http://www.jxxg.com/dh20156/m/m.htm
    真是太奇怪了,没人提供正解就结贴了!
      

  11.   

    我测试没有问题,但是我发现一个问题:
    进入你的测试页面,右边的frame要过一段时间才能显示出来,在这个frame显示出来之后点击左栏的按钮是没有问题的(点第二个响应的速度稍微慢些),如果在这个frame显示出来之前点击肯定会产生问题(因为页面没有加载,函数调用无法执行)
    不知道楼主说的问题是否是这个?
      

  12.   

    另外楼主如果想解决缓存问题,好像直接使用POST方法就可以,不需要对url加一个时间