локальный файл политики того же происхождения - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь написать простое приложение DHTML, которое считывает выбранные классические шахматные игры (* .txt) в iframe и читает его с главной страницы, чтобы воспроизвести их для пользователя. Я столкнулся с ошибкой политики одинакового происхождения (SOP) с Chrome при загрузке файла .html с моего жесткого диска. Я ищу ответ в Интернете без удачи.

хром-Disable-же-происхождений-политика в нелокальных-файлах
браузер общего происхождения, политика

Когда я впервые загружаю веб-страницу ниже, главная страница может получить доступ к объекту HTMLdocument из iframe (файл не загружен), но после этого я выбираю test.txt (тот же каталог, что и главная страница), вместо этого я получаю нулевой объект (Ошибка: невозможно прочитать свойство 'body' из null).

Скоро ли Chrome исправит / включит SOP для локального файла или есть лучший подход к тому, что я хочу сделать. Для мобильности и простоты обмена я не хочу устанавливать локальный веб-сервер для использования приложений.

<html><head><title></title>
<script language="JavaScript" type="text/javascript">
<!--
 function transferHTML(srcFrame){
        //take content of iframe to a Div element
   try{
     var frameDoc = srcFrame.contentDocument;
     alert("1. " + document.location + '\n2. ' + srcFrame.src);
         //Comparing the file origin
     alert("1. " + srcFrame + "\n2. " + frameDoc);
         //Comparing Object type
     this.document.getElementById("outerDisplay").innerHTML
           = frameDoc.body.innerHTML;
   }catch(e){
     alert("Error: " + e.message);
   }
   return false;
 }
//-->
</script></head>

<body id="topWindow">
  <INPUT TYPE="button" VALUE="test.txt"
              onClick="document.getElementById('iframeId').src='test.txt'" >
  <INPUT TYPE="button" VALUE="data/test2.html"
              onClick="document.getElementById('iframeId').src='data/test2.html'" >

  <div id="outerDisplay"></div>

  <iframe  id="iframeId" width="200" height="200"
            style="position:absolute; visibility:visible;"
         onload="transferHTML(this);">
         Your browser does not support iframes.
  </iframe>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...