2015-12-10 2 views
0

По существу у меня есть сайт, которому требуется динамически загружаемый контент - в частности, локали. Мне нужна многоязычная поддержка моего сайта, поэтому общая идея заключается в том, что у меня есть параметр запроса: язык = английский и английский, а затем добавляются в заголовок, чтобы он захватывал нужные данные, которые будут использоваться на моей веб-странице. Так как:Добавление скрипта SRC вызывает ошибку запроса на исходный исходный текст

//script 1 

//getLanguage() gets the specified query parameter, like 'english' 
$('head').append('<script src=' + getLanguage() + '.js'></script>'); 

Затем на протяжении сценария 1 Я хотел бы сделать так:

$('#mainHeader').append(window.i18n['home'].mainHead()); 

И это английская версия сценария, где определены переменные:

//english.js 

(function(A) { 
A.i18n = { 
    home: { 
    mainHead: function(b) { return 'test123'; }, 
    } 
} 
})(this); 

это работает при работе на локальном веб-сервере. Запустив его как файл (вот что мне нужно сделать), я получаю следующее:

«XMLHttpRequest не может загрузить файл: //...english.js? _ = 1449747918242. Запросы на кросс-начало поддерживаются только для схем протокола : http, data, chrome, chrome-extension, https, chrome-extension-resource. " И «Uncaught TypeError: Не удается прочитать свойство„домой“неопределенных»

Я пытался использовать чистый JavaScript, и это дает «неперехваченным TypeError: Не удается прочитать свойство„дом“неопределенных»:

var head= document.getElementsByTagName('head')[0]; 
var script= document.createElement('script'); 
script.type= 'text/javascript'; 
script.src= getLanguage() + '.js'; 
head.appendChild(script); 

Любые предложения о том, как действовать? Я пытаюсь использовать различные потенциальные решения в течение дня и ничего не работает.

+1

'file: //' ... chrome не любит делать такие вещи в протоколе 'file' –

+0

Хорошо, что вы говорите, что хотите запустить локальный файл с веб-страницы, заслуживающей от внешнего сервера? Почему бы вам не поставить свой скрипт на сервер? –

+0

jQuery имеет систему обработки строк HTML. Эта система несовместима с добавлением скриптов. У этого есть обходное решение для этого, которое использует Ajax. Это прерывает запросы на перекрестный поиск. Чистая работа JavaScript вокруг вас должна решить ее, но вам нужно быть более конкретным, чем «вызывает проблемы». – Quentin

ответ

0

Проблема связана с:

$('head').append('<script src=' + getLanguage() + '.js></script>'); 

Зафиксировано:

document.write('<' + 'script src=' + getLanguage() + '.js' + ' type="text/javascript"><' + '/script>'); 

JQuery, кажется, есть вопросы, связанные с внос несущественные HTTP запросы к файлам на том же домене.

Смежные вопросы