Импорт данных автозаполнения из файла в Chrome - PullRequest
0 голосов
/ 10 июля 2019

У меня есть CSV-файл пользователей (с адресом электронной почты и именем). Google Chrome хранит свои данные автозаполнения, и вы можете добавить их вручную здесь: chrome: // settings / address

Можно ли автоматически импортировать данные из файла?

1 Ответ

1 голос
/ 10 июля 2019

В пользовательском интерфейсе настроек используется внутренний API chrome.autofillPrivate.saveAddress ( источник ).

  1. Перейти к chrome://settings/addresses
  2. открыть консоль devtools
  3. вставьте и запустите приведенный ниже код, который добавляет кнопку ввода в верхнем правом углу, где вы можете выбрать файл CSV: enter image description here
for (const el of document.querySelectorAll('body > input'))
  el.remove();
Object.assign(document.body.appendChild(document.createElement('input')), {
  type: 'file',
  style: 'position:absolute; top:2ex; right:0; z-index:999',
  onchange(e) {
    if (!this.files[0])
      return;
    const fr = new FileReader();
    fr.readAsText(this.files[0], 'UTF-8');
    fr.onload = () => {

      for (const line of fr.result.split(/\r?\n/)) {
        const [name, email] = line.split(',');
        chrome.autofillPrivate.saveAddress({
          emailAddresses: [email],
          fullNames: [name],
        });
      }

    };
    fr.onerror = console.error;
  },
});
  • Для обработки заключенных в кавычки и многострочных полей в CSV вы должны изменить этот примитивный код, есть много примеров правильного синтаксического анализа CSV в JavaScript.
  • Вы можете сохранить код в sntopets devtools для повторного использованияпозже.
  • Вы не можете использовать этот частный API в расширении.
  • Поддерживаемые поля и их типы перечислены в autofill_private.js
...