获取网站上某种类型的所有元素

Get All Elements of Certain Type on a Website

我需要找到网站上的所有输入元素 (sap.m.Input)。 我知道我可以通过 sap.ui.getCore().byId() 通过 ID 找到一个元素,但这对我没有帮助。

我正在寻找类似 sap.ui.getCore().getByType("sap.m.Input") 的内容。我该怎么做呢?

编辑:我无权访问该网站的源代码,我在使用 SAPUI5

的网站上通过 chrome 扩展注入 javascript

从当前页面开始

<mvc:View ...>
  <Input fieldGroupIds="myInputs" />
</mvc:View>
// In the Controller
this.getView().getControlsByFieldGroupId("myInputs").filter(c => c.isA("sap.m.Input"));

来自整个应用程序

利用 this solution in :

const allRegisteredControls = sap.ui.getCore().byFieldGroupId(""); // From 
const inputControls = allRegisteredControls.filter(c => c.isA("sap.m.Input"));

API reference: sap.ui.base.Object#isA

这 returns 给定类型的所有注册实例。请注意,已销毁的元素不会被包含在内。

您可以像这样将每个输入字段设置为特定的字段组

<input fieldGroupIds="MyGroup" />

然后使用 byFieldGroupId 方法获取所有这些字段

var aMyGroupControls = sap.ui.getCore().byFieldGroupId("MyGroup");

aMyGroupControls 将填充一个控件数组

我找到了这个解决方案:

我从 DOM-Tree 中获取 class sap.m.Input 的所有元素 document.getElementsByClassName("sap.m.Input")`。

然后我通过对该数组的每个元素的 ID 调用 sap.ui.getCore().byId() 来获取相应的 UI5 元素。