Добавить печатный медиа-запрос через JavaScript - PullRequest
0 голосов
/ 11 декабря 2019

В настоящее время я пытаюсь распечатать страницу, содержащую контрольные списки, и каждый список имеет небольшую текстовую область под ним. При печати отображаются только проверенные элементы, в результате чего контрольные списки изменяются по высоте. Я хочу, чтобы все контрольные списки имели одинаковую высоту, чтобы текстовая область под каждым была выстроена в линию.

В настоящее время я использую JS для циклического прохождения этих контрольных списков, чтобы получить самый высокий, чтобы я мог установить высоту для печати. Я попытался переключить класс с желаемой высотой для печати, но это, конечно, влияет на главную страницу (я мог переключиться назад через секунду, НО, казалось, правило не применялось к печати, поэтому я его консервировал). Я нашел эту статью Дэвида Уолша, в которой есть раздел по вставке правил для медиазапросов, которые я пытался выполнить. Это самое близкое к тому, чего я пытаюсь достичь, НО это, похоже, не применимо к печати (я обновил этот же код, чтобы не использовать медиазапрос, и он сработал, поэтому я думаю, что моя переменная "newHeight"ок).

** Обновление: я думаю, что моя проблема связана с тем, как мой JS работает / не работает. Я столкнулся с чем-то, что, похоже, мешает запуску JS.

$.each(document.styleSheets, function(counter, styleSheet) {
  if(styleSheet.href && styleSheet.href.endsWith('my_specified_sheet.css')) {
    $.each(styleSheet.rules, function(_counter, rule) {
      if(rule && rule.conditionText === "print") {
        var newHeight = tallestSelectedItemsHeight + "px!important";
        styleSheet.insertRule("@media print{ .print-height { height: " + newHeight + "; } }");
      }
    })
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...