我在母版页添加引用JS<script src="Scripts/Small.js" type="text/javascript"></script>然后在default.aspx下添加3个IFrame,这3个IFrame都用同一个Small.js, 但是他们获取不到母版页添加的JS,只能单独添加引用JS,但是你运行default.aspx的时候就会看到网页同时引用了3个Small.js,这样太不好了..请问有什么办法能让IFrame能引用到母版页的Small.js ?

解决方案 »

  1.   

    怎么会有3个JS引用呢,HTML里应该是3个ifrmae吧
    iframe其实就是嵌套的单独页面,请求的时候也是单独请求的
      

  2.   

    母版页中的内容只有引用了它的内容页(@Page指令里有MasterPageFile)才可以直接用
      

  3.   

    子窗口中使用document.parent访问父页面DOM试试
      

  4.   

    Iframe也是一个单独页面嘛,你加载IFrame的时候就会把IFframe里引用的js加载,我有一个页面,加载了8个IFrame,结果网页打开这个页面的时候,同一个js被加载了8次,因为每个IFrame都引用了这个JS,太冗余了。我觉得应该有办法只加载一个,不知打怎么弄
      

  5.   

    如果仅仅是调用计算函数或引用值的话,可以考虑楼上各位说的parent.?。
    如果Small.js涉及到frame相关的话估计就不太好办了,提供几种可能性:
    1.客户端缓存Small.js,让服务器返回304,不过这样还是会产生http连接。
    2.Small.js处理成字符串模式,如var SmallJs='';eval(SmallJs);,子框架中eval(parent.SmallJs);
    3.使用ajax请求获取到Small.js的字符串,调用方式与方案2类似。
      

  6.   

      比如模板页有 function aa(){ alert('dd'); }你在iframe也中调用  top.aa();