При отображении содержимого файла на html-странице появляется пустое поле - PullRequest
0 голосов
/ 08 мая 2018

Я создаю веб-приложение, которое будет искать мои файлы .feature (которые являются обычными текстовыми файлами) и отображать их путь вместе с содержимым. Я использую Python и Flask. Я искал в Интернете способы отображения содержимого файла и, как вы можете видеть из источника, я нашел 5 способов сделать это. Но конечная html-страница отображает содержимое файла как пустое поле. Я знаю, что путь к файлам правильный, потому что когда я ввожу бессмысленный путь, я получаю «Не найдено» для этого элемента. Я подозреваю, что это проблема безопасности. Исходный код шаблона:

<html>
<head>
    <title>Available scenarios</title>
    <link rel="stylesheet" href="/static/css/styles.css">
</head>
<body>
    <!--<h1>Available scenarios:</h1>-->
    <input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
    <form id="scenarios_form" action="/run_tests.html" method="post">
        <input type="submit" value="Run">
    <table id="myTable">
        <tr class="clickable"><td colspan="2">Available scenarios:</td></tr>
    {% for scenario in scenarios %}
            <tr><td><label><input name="selected_features" type="checkbox" value="{{ scenario }}"> {{ scenario }}</label></td></tr>
            <tr><td><embed src="{{ scenario }}" /></td></tr>
            <!--<tr><td><a href="file:///{{ scenario }}">Link</a></td></tr>-->
            <!--<tr><td><object data="{{ scenario }}"></object></td></tr>-->
            <!--<tr><td><iframe src="{{ scenario }}"></iframe></td></tr>-->
            <!--<tr><td><a href="{{ scenario }}" target="_blank">Click To View</a></td></tr>-->
    {% endfor %}
    </table>
    </form>
<script>
    function myFunction() {
      var input, filter, table, tr, td, i;
      input = document.getElementById("myInput");
      filter = input.value.toUpperCase();
      table = document.getElementById("myTable");
      tr = table.getElementsByTagName("tr");
      for (i = 0; i < tr.length; i++) {
        td = tr[i].getElementsByTagName("td")[0];
        if (td) {
          if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
            tr[i].style.display = "";
          } else {
            tr[i].style.display = "none";
          }
        }
      }
    }
</script>
</body>

Есть ли способ сделать работа или мне нужно все делать в бэкэнд и отправлять текст в шаблон? Поведение одинаково для всех браузеров, и в консоли нет ошибок.

...