0
基本上我有一個需要動態加載內容的網站 - 特別是語言環境。我需要爲我的網站提供多語言支持,所以一般的想法是我有一個查詢參數,如?language = english和english將被附加到標題,以便抓取正確的數據用於我的網頁。因此,像:附加腳本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,數據,chrome,chrome擴展,https,chrome擴展資源。「 和「遺漏的類型錯誤:無法讀取的未定義的屬性‘家’」
我試圖使用純JavaScript,這一點讓「遺漏的類型錯誤:無法讀取屬性未定義的‘家’」:
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= getLanguage() + '.js';
head.appendChild(script);
關於如何進行的任何建議?我一直在嘗試各種可能的解決方案,現在似乎沒有任何工作。
'文件://'...鉻不喜歡'file'協議做類似的東西 –
好你所要說的是,你想從網頁上運行的本地文件從外部服務器實至名歸?你爲什麼不把你包含的腳本放在服務器上? –
jQuery有一個處理HTML字符串的系統。該系統與添加腳本不兼容。它有一個使用Ajax的解決方法。這違反了跨域請求。純JavaScript工作應該解決它,但你需要比「導致問題」更具體。 – Quentin