在我的Sharepoint生成的网页中,有很多地方的元素ID由Sharepoint以前缀"ct100"分配值。
在我的javascript中引用这些ID有多安全?它们有多静态?它们因任何原因而改变的可能性有多大?是否有任何文件讨论了它们是如何生成的,并回答了上述问题?
谢谢,George
"安全"在这里是相对的,取决于特定的页面和所涉及的控件。
看起来像ctXYZ
的单个ID是由父ASP自动生成的。Net Naming Container当控件没有显式分配ID时,即ID是自动生成的,如ct001、ct002等,确保不会创建重复项。
最终的客户端ID(在HTML中被指定为ID属性)是由控件的所有ID和所有祖先用下划线连接而成的;因此单个客户端ID的稳定性受到多个控制的影响。
只有始终以相同的方式重新创建控制树时,才能保证生成的客户端ID保持稳定——这在许多情况下都是正确的,但不是绝对的。动态添加或删除控件可以很容易地打破这种假设。
ASP。Net4(或4.5?)引入了一种不同的ID模式,主要是"可预测",请参阅命名容器链接,但我不认为SharePoint在任何地方都使用了这一新功能;并且它绝对不用于包含CCD_ 2组件的ID。
根据研究,最安全的方法是使用css和jquery来识别和操作"ct001"元素。我已经尝试过这种方法,而且看起来效果很好。