页面JS获取不到控件ID
为了使页面更加的友好,我们不可避免的要在页面上使用JS,所以在页面上使用javascript获取控件ID是很常见的事情。但是最近在使用JS的使用,遇到了一件让我很头疼的事情,在获取控件ID时,抱错了,监控显示,获取不到控件ID。
源代码:
<script type="text/javascript">Function(){var args = window.dialogArguments;var serverTaskInfo = $("#hidTaskInfo").val();if (serverTaskInfo == "") {BindSelectorControl(args);} else {var task = Sys.Serialization.JavaScriptSerializer.deserialize(serverTaskInfo);BindSelectorControl(task);}if (args.action === "readOnly") {$find("CommonAutoCompleteWithSelectorControl1")._disabled = true;$find("CommonAutoCompleteWithSelectorControl2")._disabled = true;$find("CommonAutoCompleteWithSelectorControl1")._ouBtn.disabled = true;$find("CommonAutoCompleteWithSelectorControl2")._ouBtn.disabled = true;}})</script>
首先分析可能是控件ID写错了,但是对比以后发现,名称拼写完全正确,看来不是拼写错误。
再次分析,会不会是页面不识别jquery,换成原生的javascript看看行不行,结果还是一样,控件显示为undefined,也不是语言问题。
百度之,结果百度居然没有我想要的答案。找了个大牛,大牛说,可能是你的JS有问题,你的JS执行的时候,你要获取的那个控件在页面上还没有渲染完毕,所以你获取不到。(果然是大牛啊)
百度了一下页面上JS最晚的执行事件是什么,度娘的答案是onload()事件,我原来是将代码直接写在了function()中,可能是这个原因,果断测试下。结果很是可惜,还是获取不到控件ID。
再次百度页面代码的执行顺序,可知,页面代码是按照先后顺序依次执行的,果断再次测试,将这段代码搬到了Body的脚部,也就是页面代码的最下边,测试结果还是不能令人满意。
再次询问大牛,大牛说有个函数执行顺序非常晚,赶紧问之,是
Sys.Application.add_load(function() { })
函数。
赶紧再试试。报错了,但是错误提示不一样,大牛说,需要注册一样东西,果断百度之,原来是这个玩意。
<asp:ScriptManager runat="server" ID="scriptManager1" EnableScriptGlobalization="true"EnablePartialRendering="true">
</asp:ScriptManager>
再次测试,成功了!
完整的代码:
<head id="Head1" runat="server">
</head>
<body><form id="form1" runat="server"><asp:ScriptManager runat="server" ID="scriptManager1" EnableScriptGlobalization="true"EnablePartialRendering="true"></asp:ScriptManager>
<script type="text/javascript">Sys.Application.add_load(function () {var args = window.dialogArguments;var serverTaskInfo = $("#hidTaskInfo").val();if (serverTaskInfo == "") {BindSelectorControl(args);} else {var task = Sys.Serialization.JavaScriptSerializer.deserialize(serverTaskInfo);BindSelectorControl(task);}if (args.action === "readOnly") {$find("CommonAutoCompleteWithSelectorControl1")._disabled = true;$find("CommonAutoCompleteWithSelectorControl2")._disabled = true;$find("CommonAutoCompleteWithSelectorControl1")._ouBtn.disabled = true;$find("CommonAutoCompleteWithSelectorControl2")._ouBtn.disabled = true;}})</script></form>
</body>
注册的这个东西到底是何方圣神呢?它是一个脚本控制器,用来处理页面上所有组件及页面局部更新,生成相关的客户端代理脚本以便能够在JS中访问 Web Service,它是AJAX存在的基础,如果页面上使用到了AJAX,必须使用这个控制器,并且每个页面能且只能使用一次。
这个事件是怎么回事呢?MSDN解释:在所有脚本都已加载,并且应用程序中的对象已创建并初始化之后引发。
页面JS获取不到控件ID相关推荐
- ViewPager的使用及获取子view控件的操作(inflate)
Step 1: 布局文件中添加viewpager和切换页面button <span style="font-size:18px;"><RelativeLayout ...
- android studio查找应用控件id实现自动化测试
android有些繁琐重复的测试流程完全可以交给自动化程序去进行测试. 接下来只是稍微介绍一下当我们没有源码的情况下如何获取应用的控件id的方式,可以获取到id就可以写我们的自动化运行脚本咯,呵呵具体 ...
- 原生js获取以固定字符开头的控件id,并设置属性
原生js获取以固定字符开头的控件id,并设置属性 还在用JQ加CSS选择器获取指定id开头的DOM嘛? 现在试试 JavaScript提供的querySelectorAll函数 目前几乎主流浏览器均支 ...
- Android开发之Android Studio 3.6新特性之获取控件id的高级方式ViewBinding
一般获取id有如下几种方式: 访问布局控件ID方式 优点 缺点 findViewById 系统提供有保障 特别繁琐代码量大 第三方注解 快捷简单 引用三方可能有不确定因素 kotlinx.androi ...
- android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解
android 巧妙利用反射机制获取控件id,避免大量冗杂的findviewbyid和butterknife注解 一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的 ...
- android 获取控件 id 工具,如何使用appium desktop 获取Android APP 控件的id
背景: 随着Android 版本的更新,你会发现我们之前用的最新的版本的Appium 1.5.3无法启动我们的 Android APP 在模拟器为7.0的设备上,所以我们有必要了解如何使用 appiu ...
- Android如何获取第三方app的控件id
进入Android studio,点击Tools--->layout Inspector,然后选择相应的包名即可查看 比如我下面这张图就是选择了MIUI相册进程,然后点击预览图,左边高亮显示 ...
- layui日期与vue_详解Vue.js和layui日期控件冲突问题解决办法
详解Vue.js和layui日期控件冲突问题解决办法 发布于 2020-8-10| 复制链接 摘记: 事故还原: 今天在用layui的日期控件的时候发现一个问题,就是form表单中的日期选择之后,如果 ...
- JS与APP原生控件交互
"热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...
最新文章
- Linux下c的进一步学习
- 利用HTTP watch观察SAP CRM WebClient UI popup window
- python捕获全局异常统一管理_python中如何用sys.excepthook来对全局异常进行捕获、显示及输出到error日志中...
- pythongui做计算器_python GUI之简易计算器
- python转json到excel_【Python】EXCEL转Json
- java中的工厂模式_java中工厂模式详解和使用方法
- oracle10g无监听配置文件,关于监听配置文件listener.ora的问题
- java程序cpu突然飚高_简单排查java应用CPU飙高的线程问题
- 便捷、高效、智能—从运维视角看星环科技大数据基础平台TDH
- 一丶Java 中和的区别;二丶java中和,||和|的区别。
- Word导入与发送、一键生成PPT文案
- 函数逼近和曲线拟合、插值
- Centos杀死进程kill方法大全
- 容器与Servlet生命周期
- ios 生成字母加数字的随机数
- 基于ADAU1452的DSP及DAC音频失真分析
- Android定位获取当前经纬度
- 大龄程序员的出路,程序员38岁退休转行前和年轻码农的对话
- oracle一列中间加一个字_「首席看架构」用GoldenGate创建从Oracle到Kafka的CDC事件流...
- MCE | ATM 激酶活化变单体后的神奇开挂!