Ошибка сравнения строк Python

Если у вас нет контроля над страницей и вы хотите наблюдать за каким-то изменением, то современный метод заключается в использовании MutationObserver

. Пример его использования, (f6]

new MutationObserver(function(mutations) {
  mutations.some(function(mutation) {
    if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
      console.log(mutation);
      console.log('Old src: ', mutation.oldValue);
      console.log('New src: ', mutation.target.src);
      return true;
    }

    return false;
  });
}).observe(document.body, {
  attributes: true,
  attributeFilter: ['src'],
  attributeOldValue: true,
  characterData: false,
  characterDataOldValue: false,
  childList: false,
  subtree: true
});

setTimeout(function() {
  document.getElementsByTagName('iframe')[0].src = 'http://jsfiddle.net/';
}, 3000);

Выход через 3 секунды

MutationRecord {oldValue: "http://www.google.com", attributeNamespace: null, attributeName: "src", nextSibling: null, previousSibling: null…}
Old src:  http://www.google.com
New src:  http://jsfiddle.net/ 

В jsFiddle

Добавлено ответ здесь, поскольку исходный вопрос был закрыт как дубликат этого.

-1
задан Arnus 19 March 2019 в 07:53
поделиться

1 ответ

  1. Ваше выражение анализируется как (var is "") or "1", что всегда Истина, потому что "1" Истина-иш.

  2. Если вы добавите круглые скобки, чтобы получить var is ("" or "1"), это эквивалентно var is True, потому что "" or "1" Истина, потому что «1» Истина-иш.

  3. Сравнение строк с is чревато опасностью, потому что оператор is проверяет тождество , а не равенство.

Вы, вероятно, хотите var in ("", "1")

0
ответ дан Ture Pålsson 19 March 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: