Как отключить ChromeVox UI при печати?

puts является синонимом $stdout.puts. $ stdout - это класс IO, поэтому посмотрите на документацию для IO.puts :

Записывает данные объекты в ios, как при печати IO #. Записывает разделитель записей (как правило, новую строку) после тех, которые еще не заканчиваются последовательностью новой строки. Если вызывается с аргументом массива, записывает каждый элемент в новую строку.

blockquote>

Это означает, что метод puts предназначен для записи нескольких строк вывода. Таким образом, он пытается вызвать метод to_ary для объекта и если to_ary определен, затем печатает каждый элемент возвращенного Array в новой строке, иначе puts вызывает метод to_s.

to_ary внутреннее использование в документации Ruby действительно недостаточно хорошо документировано (Matz указывает на это в книге языка программирования Ruby ).

Методы print и p, с другой стороны, не вызывают to_ary, только to_s.

Sidenote : Интересно, что to_ary должен возвращать реальный Array, а не объект, определяющий метод each или что-то еще:

class Test
  def to_ary
    10.downto(1)
  end
end

puts Test.new

#TypeError: can't convert Test to Array (Test#to_ary gives Enumerator)
#        from (irb):28:in `puts'
#        from (irb):28:in `puts'
#        from (irb):28

0
задан Beau Smith 18 March 2019 в 21:34
поделиться

1 ответ

Решено с помощью медиа-запросов print css!

ChromeVox добавляет разметку и стили в body страницы, которая выглядит следующим образом:

<div aria-hidden="true" class="cvox_indicator_container  ...more classes...">
...more html markup...
</div>

Поэтому я обновил свой Глобальная таблица стилей CSS включает в себя следующее:

@media print {
  .cvox_indicator_container {
    display: none;
  }
}

, который работал отлично.

Затем я подумал, что хочу убедиться, что это никогда не изменится, даже если ChromeVox изменил свой CSS для большей специфичности.

Затем я обновил CSS:

@media print {
  html body div.cvox_indicator_container {
    display: none !important;
  }
}

Примечание: Это может быть излишним, но, безусловно, имеет больше специфичности.

В идеале команда ChomeVox добавит что-то вроде этого решения в свой код. Я пытался найти их репозиторий с открытым исходным кодом… подошел близко, но не смог. Halp?

0
ответ дан Beau Smith 18 March 2019 в 21:34
поделиться
Другие вопросы по тегам:

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