| 
 | 
 
论坛找的JS脚本类..  调用后是用执行完毕得到的结果..  但是..每次在主线程的时候,都获取不到内容...  应该是JS内容还没有执行完 
想了各种办法 仍然无法达到要求...  怎么样能等待JS执行完毕再继续执行下边的代码- <火山程序 类型 = "通常" 版本 = 1 />
 
  
- 包 火山.样例 <注释 = "火山无名模块:">
 
  
- 类 启动类 <公开 基础类 = 安卓5无标题白色窗口 注释 = "用户主窗口封装类." 注释 = "此处设置了常用的附加清单属性,如果不需要可删除." @安卓.附加清单 = 常用窗口附加清单.全面屏
 
 -         @安卓.附加清单 = 常用附加清单.开启硬件加速 @安卓.附加清单 = 常用窗口附加清单.不改变软键盘状态>
 
 - {
 
 -     变量 按钮_解析JSON <类型 = 按钮 隐藏值属性 = "0" @安卓.窗口.布局 = "p_layout_horz_align = left" 内容 = "利用js解析JSON">
 
 -     变量 编辑框_路径 <类型 = 编辑框 隐藏值属性 = "0"
 
 -             @安卓.窗口.布局 = "ctrl_order = 1\np_layout_height_type = wrap_content\np_layout_width_type = match_parent"
 
 -             内容 = "user.address[0].postcode" 单行模式 = 真>
 
 -     变量 编辑框_json <类型 = 编辑框 隐藏值属性 = "0"
 
 -             @安卓.窗口.布局 = "ctrl_order = 2\np_layout_height_type = p_specified\np_layout_height_value = 50\np_layout_width_type = match_parent"
 
 -             内容 = "{ "username":"andy", "age":20, \n"info": { "tel": "123456", "cellphone": "98765"}, \n"address": [ {"city":"beijing","postcode":"222333"}, \n{"city":"newyork","postcode":"火山"} ] }">
 
 -     变量 按钮_载入并执行 <类型 = 按钮 隐藏值属性 = "0" @安卓.窗口.布局 = "ctrl_order = 3" 内容 = "载入js并执行">
 
 -     变量 脚本 <类型 = JS脚本类>
 
  
-     方法 通知_被创建 <公开 注释 = "火山无名模块:" @虚拟方法 = 可覆盖>
 
 -     参数 启动信息对象 <类型 = 启动信息类>
 
 -     参数 载入参数 <类型 = "对象类 []">
 
 -     参数 参数数目 <类型 = 整数>
 
 -     {
 
 -         父对象.通知_被创建 (启动信息对象, 载入参数, 参数数目)
 
 -         脚本.初始化 (本对象)  // 必须初始化后才能调用
 
 -     }
 
  
-     方法 按钮_被单击 <接收事件 类型 = 整数>
 
 -     参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象" 编辑时信息 = "42AA6, 0, 0, 0">
 
 -     参数 标记值 <类型 = 整数 注释 = "用户调用"挂接事件"命令时所提供的"标记值"参数值,非此方式挂接事件则本参数值固定为0." 编辑时信息 = "42AA6, 0, 0, 0">
 
 -     {
 
 -         如果 (来源对象 == 按钮_载入并执行)
 
 -         {
 
 -             常量 JS代码 <类型 = 文本型
 
 -                     值 = "function Add(x, y) {\n    return x+y;\n  }\n  function Add2(x, y) {\n    return x+y;\n  }\n  function Add3() {\n    return "火山";\n  }">
 
 -             脚本.载入JS (JS代码, 1)
 
 -             提示信息框 ("JSON返回结果:" + 全局变量.token)
 
 -             // 这里全局变量怎么都不能及时的获取..  试验了各种办法
 
 -             //怎么样能等待JS执行完毕返回了变量  再继续进行下边的代码
 
  
-         }
 
 -         否则 (来源对象 == 按钮_解析JSON)
 
 -         {
 
 -             //JSON解析 (编辑框_json.内容, 编辑框_路径.内容)
 
 -             //提示信息框 ("JSON返回结果:" + 全局变量.token)
 
 -         }
 
 -         返回 (0)
 
 -     }
 
  
-     方法 JSON解析
 
 -     参数 JSON文本 <类型 = 文本型>
 
 -     参数 JSON路径 <类型 = 文本型>
 
 -     {
 
 -         变量 脚本1 <类型 = 文本型 值 = "var user = @<内容1>;\nreturn @<内容2>;">
 
 -         脚本1 = 子文本替换 (脚本1, "@<内容1>", JSON文本)
 
 -         脚本1 = 子文本替换 (脚本1, "@<内容2>", JSON路径)
 
 -         脚本.执行JS (脚本1, 1)
 
 -     }
 
  
-     方法 JS脚本类_执行完毕 <接收事件 类型 = 整数>
 
 -     参数 来源对象 <类型 = JS脚本类>
 
 -     参数 标记值 <类型 = 整数>
 
 -     参数 所返回数据 <类型 = 文本型>
 
 -     参数 标记 <类型 = 整数>
 
 -     {
 
 -         如果 (来源对象 == 脚本)
 
 -         {
 
 -             如果 (所返回数据 == "null")
 
 -             {
 
 -                 提示框 ("无返回数据")
 
 -                 返回 (0)
 
 -             }
 
 -             如果 (标记 == 1)  // 判断是否为JSON解析
 
 -             {
 
 -                 全局变量.token = 所返回数据
 
 -                 // 提示信息框 ("JSON返回结果:" + 所返回数据)
 
 -             }
 
 -             否则 (标记 == 2)
 
 -             {
 
 -                 全局变量.token = 所返回数据
 
  
-                 // 提示框 ("执行JS方法结果:" + 所返回数据)
 
 -             }
 
 -         }
 
 -         返回 (0)
 
 -     }
 
  
-     方法 JS脚本类_载入JS完毕 <接收事件 类型 = 整数 折叠>
 
 -     参数 来源对象 <类型 = JS脚本类>
 
 -     参数 标记值 <类型 = 整数>
 
 -     参数 标记 <类型 = 整数>
 
 -     {
 
 -         如果 (标记 == 1)  // 判断载入来源
 
 -         {
 
 -             脚本.执行JS方法 ("Add(1,2)", 2)  // 可以执行载入js中的各种写好的方法
 
 -             脚本.执行JS方法 ("Add2(2,2)", 2)
 
 -             脚本.执行JS方法 ("Add3()", 2)
 
 -             来源对象.释放载入 ()  // 释放后将不能调用载入的方法.
 
 -         }
 
 -         返回 (0)
 
 -     }
 
 - }
 
  
- 类 JS脚本类 <公开 注释 = "火山无名模块:" 注释 = "用于执行加载JavaScript脚本">
 
 - {
 
 -     变量 浏览框1 <参考 类型 = 浏览框>
 
 -     变量 成员执行的方法 <类型 = 文本型>
 
  
-     方法 初始化 <公开 注释 = "初始化当前对象,必须初始化后才能使用." 折叠>
 
 -     参数 所处窗口 <类型 = 安卓窗口>
 
 -     {
 
 -         浏览框1 = 所处窗口.创建窗口组件 (浏览框)
 
 -         挂接事件 (浏览框1)
 
 -     }
 
  
-     方法 载入JS <公开 注释 = "准备一段JavaScript代码,载入到当前对象中,载入后可调用"执行JS方法"执行js中的各种方法." 注释 = "载入完毕后将触发"载入JS完毕"事件."
 
 -             折叠>
 
 -     参数 脚本内容 <类型 = 文本型 注释 = "提供完整的JavaScript代码">
 
 -     参数 标记 <类型 = 整数 注释 = "设置载入标记,当载入完毕后可通过"载入JS完毕"事件的标记参数获取." "">
 
 -     {
 
 -         如果 (浏览框1 != 空对象)
 
 -         {
 
 -             浏览框1.标记 = 到文本 (标记)
 
 -             变量 脚本1 <类型 = 文本型 值 = "<html><body><script>脚本</script></body></html>">
 
 -             浏览框1.载入数据 (子文本替换 (脚本1, "脚本", 脚本内容), "text/html; charset=UTF-8")
 
 -         }
 
 -     }
 
  
-     方法 释放载入 <公开 注释 = "释放"载入JS"方法载入的js代码,释放后将不能执行其中的任何方法.">
 
 -     {
 
 -         如果 (浏览框1 != 空对象)
 
 -         {
 
 -             浏览框1.载入数据 ("")
 
 -         }
 
 -     }
 
  
-     方法 执行JS方法 <公开 注释 = "当调用了"载入JS"方法后可调用本方法执行其中的js方法." 注释 = "注意:本方法只能在"载入JS完毕"事件下才能调用.">
 
 -     参数 要执行的方法 <类型 = 文本型 注释 = "提供js方法名,例如:getValue()">
 
 -     参数 标记 <类型 = 整数 注释 = "当执行多个脚本时,可用于在事件中判断执行来源.">
 
 -     {
 
 -         如果 (浏览框1 != 空对象)
 
 -         {
 
 -             浏览框1.标记 = 到文本 (标记)
 
 -             浏览框1.执行JS方法2 (要执行的方法)
 
 -         }
 
 -     }
 
  
-     方法 执行JS <公开 注释 = "直接执行一段JavaScript代码,本方法将触发"执行完毕"事件." 注释 = "注意:本方法并不能执行"载入JS"方法载入的js内容."
 
 -             编辑时信息 = "2FFFD, 0, 0, 0">
 
 -     参数 脚本内容 <类型 = 文本型 注释 = "提供JavaScript代码,譬如:return 1+1;" 编辑时信息 = "2FFFD, 0, 0, 0">
 
 -     参数 标记 <类型 = 整数 注释 = "当执行多个脚本时,可用于在事件中判断执行来源." 编辑时信息 = "2FFFD, 0, 0, 0">
 
 -     {
 
 -         如果 (浏览框1 != 空对象)
 
 -         {
 
 -             浏览框1.标记 = 到文本 (标记)
 
 -             浏览框1.执行JS方法2 ("(function() {" + 脚本内容 + "})();")
 
 -         }
 
 -     }
 
  
-     方法 执行完毕 <公开 定义事件 类型 = 整数 注释 = "执行JavaScript完毕后触发本事件." 折叠>
 
 -     参数 所返回数据 <类型 = 文本型 注释 = "返回执行结果,无数据返回null.">
 
 -     参数 标记 <类型 = 整数 注释 = "返回标记值">
 
  
-     方法 载入JS完毕 <公开 定义事件 类型 = 整数 注释 = "调用了"载入JS"方法后本事件将被触发." 注释 = "触发后可调用"执行JS方法"执行其中的各种JS方法.">
 
 -     参数 标记 <类型 = 整数 注释 = "返回载入JS方法提供的标记值">
 
  
-     方法 浏览框_JS返回数据 <接收事件 类型 = 整数>
 
 -     参数 来源对象 <类型 = 浏览框>
 
 -     参数 标记值 <类型 = 整数>
 
 -     参数 所返回数据 <类型 = 文本型>
 
 -     {
 
 -         执行完毕 (所返回数据, 文本到整数 (来源对象.标记))
 
 -         返回 (0)
 
 -     }
 
  
-     方法 浏览框_页面载入完毕 <接收事件 类型 = 整数>
 
 -     参数 来源对象 <类型 = 浏览框>
 
 -     参数 标记值 <类型 = 整数>
 
 -     参数 页面地址 <类型 = 文本型>
 
 -     {
 
 -         载入JS完毕 (文本到整数 (来源对象.标记))
 
 -         返回 (0)
 
  
 
 
 
-     }
 
 - }
 
  
- 类 全局变量 <公开>
 
 - {
 
 -     变量 token <公开 静态 类型 = 文本型>
 
  
-     #
 
 - }
 
 
  复制代码 
 
 
 
 |   
 
 
 
 |