getElementById с использованием подстроки id: Angular 4 - PullRequest
0 голосов
/ 17 мая 2018

Я использую ADAL для аутентификации пользователя при использовании моего приложения Angular 4.Когда я использую следующий метод из Adal.js:

acquireToken // https://msdn.microsoft.com/en-gb/library/microsoft.identitymodel.clients.activedirectory.authenticationcontext.acquiretoken.aspx

, он создает iFrame, который я хотел бы удалить после получения токена.Но id этого iFrame является динамическим, он начинается с чего-то вроде: "adalRenewFrame ....", а затем с токеном (который является просто строкой символов).Так есть ли способ получить этот элемент с помощью подстроки "adalRenewFrame"?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Да.Это просто.Используйте document.querySelector API с селектором на основе атрибутов CSS.

function deleteIFrame() {
    // It selects iframe whose id contains adalRenewFrame
    const iFrame = document.querySelector(`iframe[id*='adalRenewFrame']`)
    if (iFrame) {
        iFrame.parent.removeChild(iFrame);
    }
}

Вы также можете использовать атрибут, начинающийся с селектора, например document.querySelector("iframe[id^='adalRenewFrame']").

Кроме того, если вы знаете какой-либо родительский элемент поего идентификатор или класс, вы можете использовать его для поиска по запросу.

Более подробные селекторы см. в документах MDN .

0 голосов
/ 17 мая 2018

Предполагая, что вы можете получить id iFrame. Вы можете использовать startWith () функцию Javascript. Ниже рабочий пример:

var id = "adalRenewFrame23219874033";
var fixWord = "adalRenewFrame";

if (id.startsWith(fixWord)) {
  console.log("true"); // will return true
  // you code to remove iFrame here
} else {
  console.log("false")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...