Использование iframe с локальными файлами в Chrome
Мне трудно понять, как получить доступ к странице, загруженной в iframe, с внешней страницы. Обе страницы являются локальными файлами, и я использую Chrome.
У меня есть внешняя страница и много внутренних страниц. На внешней странице всегда должен отображаться заголовок страницы для внутренней страницы (это имеет смысл в моем приложении, возможно, меньше в этом урезанном примере). Это работает без проблем в AppJS, но мне было предложено заставить это приложение работать прямо в браузере. Я получаю ошибкуЗаблокирован фрейм с источником "null" из-за доступа к фрейму с источником "null". Протоколы, домены и порты должны совпадать.».
Я думаю, что это связано с той же политикой происхождения Chrome в отношении локальных файлов, но это не помогло мне решить проблему напрямую. Я могу обойти проблему в этом урезанном примере с помощью метода window.postMessage дляСпособы обойти политику того же происхождения, Однако, выходя за рамки этого примера, я также хочу манипулировать DOM внутренней страницы с внешней страницы, так как это сделает мой код намного чище - поэтому размещение сообщений не совсем справится с работой.
Внешняя страница
<!DOCTYPE html>
<html>
<head>
<meta name="viewport">
</head>
<body>
This text is in the outer page
<iframe src="html/Home.html" seamless id="PageContent_Iframe"></iframe>
<script src="./js/LoadNewPage.js"></script>
</body>
</html>
Внутренняя страница
<!DOCTYPE html>
<html>
<head>
<title id="Page_Title">Home</title>
<meta name="viewport">
</head>
<body>
This text is in the inner page
</body>
</html>
JavaScript
var iFrameWindow = document.getElementById("PageContent_Iframe").contentWindow;
var pageTitleElement = iFrameWindow.$("#Page_Title");
вВполне вероятно, что будущие выпуски Chrome будут поддерживать contentWindow / contentDocument, когда iFrame загружает локальный HTML-файл из локального HTML-файла?Попробовал запустить Chrome с флагом
--allow-file-access-from-files
Но не было никаких изменений в результатах.
вОтключить ту же политику происхождения в ChromeПопробовал запустить Chrome с флагом
--disable-web-security
Но опять же не было никаких изменений в результатах.
вЧто делает document.domain = document.domain?Я обе страницы запустил команду
document.domain = document.domain;
Это привело к ошибке "Заблокирован фрейм с источником "null" из-за доступа к фрейму с источником "null". Кадр, запрашивающий доступ, установил «document.domain» в «», но кадр, к которому осуществлялся доступ, не сделал этого. Оба должны установить для «document.domain» одинаковое значение, чтобы разрешить доступ."
Ради интереса у меня на обеих страницах запускалась команда
document.domain = "foo.com";
Это привело к ошибке "Uncaught Error: SecurityError: DOM Exception 18».
Я барахтаюсь. Любая помощь от более знающих людей будет фантастической! Спасибо!