мне еще раз. хорошо, это работает! должны сделать это: исходный файл помещает весь html в переменную javascript, var mytext = "<html> <body> и т. д. и т. д.". Вы должны убедиться, что внутри html «нет», и все это должно быть в одной строке. Но если вы сделаете это, то все, что вам нужно сделать, это сказать document.getElementById ('mydiv'). InnerHTML = mytext и все это работает. В Chrome, Mozilla. Не знаю насчет IE. Но все должно работать нормально.

ал другие те же темы политики происхождения здесь на SO, но я не видел никаких решений, связанных с локальной файловой системой.

У меня есть веб-приложение (в широком смысле этого слова), которое должно быть локально обслуживаемым. Я пытаюсь загрузить большой объем данных после того, как пользователь загрузил страницу, в зависимости от того, что они делают на веб-странице. В Firefox 3.5 и IE8 я могу использовать для этого методы AJAX () и GetScript () jQuery, но в Chrome это не удается из-за единой политики происхождения.

XMLHttpRequest не может загрузитьfile://test/testdir/test.js, происхожденияnull не допускаетсяby Access-Control-Allow-Origin.

Это происходит, когда я делаю что-то простое, как

$.getScript("test.js");

Это прекрасно работает в IE и Firefox.

Прочитав кучу об этом, я решил попробовать написать прямо в заголовок документа. В консоли в Chrome я набрал следующее:

var head = document.getElementsByTagName("head")[0];  
var script =document.createElement('script');   
script.id = 'uploadScript';  
script.type = 'text/javascript';  
script.src = "upload.js";   
head.appendChild(script);

Это отлично работает при вставке в консоли<script...test.js</script> элемент добавляется в заголовок, оценивается, а содержимое загружается в DOM.

Я думал, что это было успешно, пока я не поместил этот код в вызов функции. Тот же самый точный код, когда вызывается из функции, добавляет элемент к, но не оценивает файл JavaScript. Я не могу понять, почему. Если я использую консоль Chrome, чтобы остановить выполнение в методе, которым он добавляет элемент, и запустить приведенный выше код, он не оценивает его. Однако, если я приостановил выполнение и запустил точно такой же код (вставив его в окно консоли), это сработало. Я затрудняюсь объяснить это. Кто-нибудь имел дело с этим раньше?

Я прочитал следующие SO сообщения, но они не описывают мою проблему:

Способы обойти политику того же происхождения
XMLHttpRequest Origin null не разрешен Access-Control-Allow-Origin для файла: /// для файла: /// (без сервера)
Межсайтовый XMLHttpRequest

Опять же, мое последнее средство заключается в загрузке всех данных при загрузке веб-страницы. Это может привести к задержке загрузки веб-страницы до 10 секунд, которая не нужна для 90% пользователей приложения.

Спасибо за любые предложения / альтернативы !!!

Ответы на вопрос(3)

Ваш ответ на вопрос