热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

APICloudexecScript方法参数传递问题及解决方案

本文探讨了在APICloud平台使用execScript方法时如何正确传递对象参数,并提供了详细的示例和解释。

execScript 方法详解

此方法用于在特定的窗口或框架中执行 Javascript 脚本,支持对框架组中的框架执行操作。如果未指定名称和框架名称,则默认在当前窗口中执行脚本。具体执行逻辑如下:

execScript({params})

  • params
    • name: 类型:字符串;默认值:无;描述:(可选)窗口名称,用于跨窗口执行脚本,首页名称为 root。
    • frameName: 类型:字符串;默认值:无;描述:(可选)框架名称。
    • script: 类型:字符串;默认值:无;描述:待执行的 Javascript 代码。

示例代码

// 在当前窗口中执行 jsfun 脚本
var jsfun = 'funcGoto();';
api.execScript({
script: jsfun
});
// 在当前窗口中名为 frmName 的框架中执行 jsfun 脚本
var jsfun = 'funcGoto();';
api.execScript({
frameName: 'frmName',
script: jsfun
});
// 在名为 winName 的窗口中执行 jsfun 脚本
var jsfun = 'funcGoto();';
api.execScript({
name: 'winName',
script: jsfun
});
// 在名为 winName 的窗口中名为 frmName 的框架中执行 jsfun 脚本
var jsfun = 'funcGoto();
api.execScript({
name: 'winName',
frameName: 'frmName',
script: jsfun
});

补充说明

执行逻辑遵循:先确定目标窗口,再确定框架,最后执行脚本。

  • name 参数: 如果未提供或为空字符串,将默认在调用 execScript 的窗口中执行脚本;如果提供了非空字符串但找不到对应窗口,则不执行任何操作。找到对应窗口后,将继续根据 frameName 参数确定框架。
  • frameName 参数: 如果未提供或为空字符串,将在当前窗口中执行脚本;如果提供了非空字符串但找不到对应框架,则不执行任何操作。找到对应框架后,将在该框架中执行脚本。

对象参数传递示例

// 正确传递对象的方式
var obj = {'id': 1, 'name': 'ffhh'};
var objStr = JSON.stringify(obj);
console.log('getjson(' + objStr + ')');
api.execScript({
name: 'root',
frameName: 'frame1',
script: 'getjson(' + objStr + ')' // 将对象转换为 JSON 字符串并作为参数传递
});
// 在 frame1 页面定义 getjson 函数
function getjson(obj) {
console.log(typeof(obj)); // 输出对象类型
console.log(obj.name); // 输出对象属性值
}

// 另一种传递对象的方式
var obja = {'name': 'fff'};
var objStr = JSON.stringify(obja);
api.execScript({
name: 'root',
frameName: 'frame1',
script: 'var objJson=' + objStr // 直接在脚本中定义变量
});
// 在 frame1 页面检查传递的对象
console.log(typeof(objJson)); // 应输出 object
console.log(JSON.stringify(objJson)); // 应输出 {'name': 'fff'}


推荐阅读
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 在使用 MUI 框架进行应用开发时,开发者常常会遇到 mui.init() 和 mui.plusReady() 这两个方法。本文将详细解释它们的区别及其在不同开发环境下的应用。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 在 ExtJS 中,类的别名(alias)是开发过程中非常有用的一个特性。通过别名,开发者可以使用简短且易于记忆的名称来引用复杂的类名。本文将详细探讨如何在 ExtJS API 中使用和定义别名,并提供实例说明。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • libsodium 1.0.15 发布:引入重大不兼容更新
    最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ... [详细]
author-avatar
七彩咩_131
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有