我被赋予了应该在工作中相当简单和直接的任务,使用JavaScript来禁用或删除按钮。这很容易,因为我真正需要做的就是button.disabled = true。但是我还没能在DOM中找到一条路径来访问该按钮。
这是在2004年左右购买的第三方软件。要求公司禁用我们的按钮是没有意义的,因为它不再真正支持,因为它只是他们在购买另一家公司时获得的产品。源代码是php并且已加密,因此我们无法读取或修改它。值得庆幸的是,他们没有对JavaScript文件执行相同的过程,而是打开了禁用按钮的开头。页面元素未正确标识为名称和id属性未一致设置。
我尝试了什么
我正在使用的JavaScript文件最初加载到页面上的iframe中。从那里开始工作,我已经成功地完成了部分工作,但是速度缓慢且令人沮丧。以下访问路径是我目前管理的
window.parent.window.frames [2] .document.forms [0] .document.getElementById(" ReportTable&#34)的document.getElementById(" ReportLayout&#34)
DOM Explorer显示的完整路径是:
HTML /体/ iframe中#标识=数据帧/ HTML /体/形式/表#标识= ReportTable / TBODY / TR / TD /表/ tbody的/ TR / TD#标识= ReportLayout /字段集/表/ TR / TD /按钮#名称= EXPORT_CSV
我已经在其中包含了已设置的元素的名称和ID。有时我被迫列出元素,所以我可以选择正确的元素。这些例子是上面的document.forms [0]和window.frames [2]。为了找到这些信息,我使用了诸如
之类的方法var table_count = target_loc.document.getElementsByTagName(" table");
警告("表格:" + table_count.length);
var i;
for(i = 0; i< table_count.length; i ++){alert(i +&#34 ;: name:" + table_count [i] .name +" id:&# 34; + table_count [i] .id); }
window.parent.window.frames [2] .document.forms [0]
下的表名
所以我需要浏览的路径的最后一部分是
字段集/表/ TR / TD /按钮#名称= EXPORT_CSV
但我还没有设法弄清楚如何在字段集中导航。我也可能需要帮助访问和导航未命名或id的表。一旦我在表中,我希望我可以得到其余的,因为我应该能够使用document.getElementByName,或者只是使用row []和stuff来导航。
答案 0 :(得分:1)
document.querySelector('[name="leName"]')
值得一提的是:当效果很重要时,最好指定一个标记名称(例如input[name="leName"]
或form[name="leName"]
)。单独的属性选择器被视为“任何标记”,就像*
一样,并且是效率最低的选择器之一。如需进一步阅读,请参阅CSS performance has changed for the better。