Отключите автоматическое заполнение с помощью CSS

После нескольких часов поиска в Google я наконец-то понял проблему: по сути, ответ на мой вызов REST на самом деле содержит тип [png] изображения png. Таким образом, чтобы правильно отобразить его, нам не нужно создавать base64 блоб, вместо этого он изначально поддерживается html5. Проблема, с которой я столкнулся, заключается в том, что этот blob не поддерживается ajax-вызовом jQuery, поэтому библиотеки более высокого уровня, такие как axios, также НЕ поддерживают его.

Для простоты, чтобы продемонстрировать, как это работает, я бы использовал jQuery:

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Blob image/png demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<form action="/" id="invokeBlob">
  <input type="submit" value="Invoke It!">
</form>
<!-- the result of the blob will be rendered inside this div -->
<div id="imgcontainer"></div>

<script>
  // Attach a submit handler to the form
  $( "#invokeBlob" ).submit(function( event ) {

    // Stop form from submitting normally
    event.preventDefault();

    var url = "https://YOUR-DOMAIN/charts";
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = "blob";

    xhr.setRequestHeader("Authorization", "Bearer XXX-YOUR-JWT-TOKEN")
    xhr.setRequestHeader("Accept", "image/png");
    xhr.onload = function() {
      if (this.status == 200) {
        var blob = this.response;
        var img = document.createElement("img");
        img.onload = function(e) {
          window.URL.revokeObjectURL(img.src);
        };
        img.src = window.URL.createObjectURL(blob);
        $("#imgcontainer").html(img);
      }
    }
    xhr.send();
  });
</script>

</body>
</html>

86
задан Wex 15 June 2011 в 18:21
поделиться

4 ответа

Вы можете использовать сгенерированный ID и и , каждый раз . некоторые значения.

Это по крайней мере, кросс-браузер безопасная альтернатива, но я бы порекомендовал пойти с ответом от robertsonm ( AutoComplete = «Off» ).

47
ответ дан 24 November 2019 в 07:57
поделиться

Вы не можете использовать CSS для отключения автоматического заполнения, но можно использовать HTML:

<input type="text" autocomplete="false" />

Технически можно заменить false любым недопустимым значением, и оно будет работать. Эта iOS единственное решение, которое я нашел, который также работает в Краю.

0
ответ дан 24 November 2019 в 07:57
поделиться

CSS не имеет этой способности. Вам нужно будет использовать клиентские сценарии.

13
ответ дан 24 November 2019 в 07:57
поделиться

В CSS нет атрибута 'autocomplete off'. Однако, у html есть простой код для этого:

<input type="text" id="foo" value="bar" autocomplete="off" />

Если вы ищете эффектор в масштабе всего сайта, то просто иметь функцию js, чтобы прогнать все 'входные' s и добавить этот тег, или искать соответствующий css класс / id.

Атрибут автозаполнения прекрасно работает в Chrome и Firefox (!), но смотрите также Есть ли W3C правильный способ отключить автозаполнение в HTML-форме?

120
ответ дан 24 November 2019 в 07:57
поделиться