zoukankan      html  css  js  c++  java
  • Script/_Config.js

    /* 系统设置
     *
     * 每个项目均应单独建立该文件
     *
     * 2006-04-14 黄宗银
     * */

    /// Apq 框架设置 ------------------------------------------------------------------------------------------------------------------------------
    window.Apq$Config = {
     // 调试
     DEBUG: false,

     // Apq 脚本库根目录
     Apq: "/Apq(分布版)/",

     // 起始页面地址
     Home: "/Apq/User/"
    };
    /// 以下一般不用修改 --------------------------------------------------------------------------------------------------------------------------
    /// 检测 MsXml 6.0
    function MsXml_Test()
    {
     try
     {
      window.Apq$jsxh = new ActiveXObject( "Msxml2.XmlHttp.6.0" );
     }
     catch(e)
     {
      if( window.confirm( '系统需要启用 ActiveX 运行权限,请检查安全设置.\n\n' +
       '同时还需要安装Microsoft XML 分析器 MSXML 6.0\n' +
       '如果你未安装,请点击"确定"打开下载\n' +
       '注意:安装后可能需要重新打开IE' ) )
      {
       window.open( "http://download.microsoft.com/download/2/e/0/2e01308a-e17f-4bf9-bf48-161356cf9c81/msxml6.msi" );
      }
      return false;
     }
     return true;
    }

    /// eval 扩展 ---------------------------------------------------------------------------------------------------------------------------------
    /// 用无参匿名函数的形式,以指定上下文运行代码
    window.anonymous = function( str, o ){
     var fn = new Function( str );
     fn.call( o );
    };

    /// 在指定窗口 添加/运行 脚本
    window.__eval = function( win, str ){
     if( win.document.readyState == "complete" || Apq$Config.DEBUG )
     {
      // 该方式 ViewPage 插件看不到源代码,但调试可见
      win.eval( str );
     }
     else
     {
      // 该方式调试时看不到源代码,一定程度上实现了程序逻辑的隐藏
      win.document.writeln( '<script type="text/jscript">' );
      win.document.writeln( str );
      win.document.writeln( '<\/script>');
     }
    };

    // 初始化脚本容器
    window.Apq$jsContainer = {};

    /// 系统初始化,需且仅需运行一次(系统已自动处理)
    window.Apq_Init = function()
    {
     // 保证只运行一次
     if( window.Apq )
     {
      return;
     }

     window.Apq$ = window.parent.Apq$ || window; // 保存框架窗口引用
     
     // 表示以本窗口为顶级引入 Apq 框架
     if( window.Apq$ == window )
     {
      window.Apq = {
       "__key": "namespace",
       "__type": "Apq"
      };

      // 将最基本的脚本文件( prototype, Apq )导出到指定窗口
      Apq.Export = function( win, ns ){
       if( ns != "prototype" && ns != "Apq" )
       {
        return;
       }
       if( Apq$jsContainer[ns] )
       {
        __eval( win, Apq$jsContainer[ns] );
        return;
       }
       
       if( !window.Apq$jsxh && !MsXml_Test() )
       {
        return;
       }
       Apq$jsxh.open( "GET", Apq$Config.Apq + ns + ".js", false );
       Apq$jsxh.send();
       if( Apq$jsxh.status == 200 )
       {
        Apq$jsContainer[ns] = Apq$jsxh.responseText;
        __eval( win, Apq$jsContainer[ns] );
        return;
       }
       throw new Error( Apq$jsxh.status, Apq$jsxh.statusText );
      };
     }

     // 非 Apq.aspx 页面,则从主框架页导入 Apq 框架
     if( !window.Apq$main )
     {
      Apq$.Apq.Export( window, "prototype" );
      Apq$.Apq.Export( window, "Apq" );
     }
     
     // 调试模式时提示所有运行异常
     if( Apq$Config.DEBUG )
     {
      window.onerror = function(sMsg,sUrl,sLine){
       alert( "\t运行时错误\n行数:" + sLine + "\n信息:" + sMsg + "\n网址:" + sUrl );
      };
     }
    };

    // 非 Apq.aspx 页面时立即初始化
    if( !window.Apq$main )
    {
     window.Apq_Init();
    }

  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/Apq/p/425518.html
Copyright © 2011-2022 走看看