基本上我有一个需要动态加载内容的网站 - 特别是区域设置。我需要对我的网站提供多语言支持,所以一般的想法是我有一个查询参数,例如?language = english和english会被附加到标题中,以便它抓取我的网页中使用的正确数据。所以喜欢:
//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);
这在本地Web服务器上运行时有效。将它作为文件运行(这是我需要做的)我得到了这个:
&#34; XMLHttpRequest无法加载file://...english.js?_ = 1449747918242。交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https,chrome-extension-resource。&#34; AND &#34;未捕获的TypeError:无法读取属性&#39; home&#39;未定义&#34;
我试图使用纯粹的javascript,这会给出&#34; Uncaught TypeError:无法读取属性&#39; home&#39;未定义&#34;:
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= getLanguage() + '.js';
head.appendChild(script);
有关如何进行的任何建议?我现在一直在尝试各种潜在的解决方案,但似乎没有任何效果。
答案 0 :(得分:0)
与以下问题相关:
$('head').append('<script src=' + getLanguage() + '.js></script>');
修正:
document.write('<' + 'script src=' + getLanguage() + '.js' + ' type="text/javascript"><' + '/script>');
jQuery似乎有与向同一域上的文件发出非http请求有关的问题。