在网站上获取特定类型的所有元素

时间:2019-01-15 14:38:20

标签: sapui5

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

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

编辑:我无权访问网站的源代码,我正在通过chrome扩展程序在使用SAPUI5的网站上注入javascript

3 个答案:

答案 0 :(得分:0)

从当前页面

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

在整个应用中

this solution中利用Get list of all instantiated controls in registry

const allRegisteredControls = sap.ui.getCore().byFieldGroupId(""); // From https://stackoverflow.com/a/54227512/5846045
const inputControls = allRegisteredControls.filter(c => c.isA("sap.m.Input"));

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

这将返回给定类型的所有已注册实例。请不要将已经被破坏的元素包括在内。

答案 1 :(得分:0)

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

<input fieldGroupIds="MyGroup" />

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

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

aMyGroupControls将充满控件数组

答案 2 :(得分:0)

我找到了这个解决方案:

我从DOM-Tree获得类sap.ui.getCore().byId()的所有元素,  document.getElementsByClassName(“ sap.m.Input”)`。

然后我通过在该数组的每个元素的ID上调用string myFile= File.ReadAllLines(Application.StartupPath.ToString() + @"..\..\..\Data\myTxtFile.txt") 来获得相应的UI5-Elements。