在Chrome控制檯獲得JSON對象,我能夠執行下面就我的另一個域中找到JavaScript函數:從另一個域
(function() {
var scr = document.createElement('script');
scr.src = 'https://www.myawesomedomain.com/test.js';
document.head.appendChild(scr);
scr.onload = function(){
myfunc();
};
})()
凡test.js具有下面的代碼:
let myfunc = function() {
alert ('you are awesome');
}
迄今爲止都不錯!
現在我有叫同一個域中的其他文件myjson.json具有以下內容:
{"message":"you are awesome!"}
,我想修改最初的代碼中提取先前的JSON值,並做了的console.log。我嘗試了下面的代碼,但是由於某種原因它不起作用:
(function() {
var scr = document.createElement('script');
scr.type = 'application/json';
scr.src = 'https://www.myawesomedomain.com/myjson.json';
document.head.appendChild(scr);
scr.onload = function(){
console.log(scr.message);
};
})()
這個。 問題:
我在上面的代碼中做了一些基本的錯誤嗎?我一直在這裏呆了一段時間,悲傷。
使用一個Ajax或HTTP調用到這裏http://stackoverflow.com/questions/13515141/html-javascript-how-to-access解決JSON的URL的詳細信息-json-data-loaded-in-a-script-tag-with-src-set –
** JSON不是Javascript。**(讓它沉入水中,它是基礎)。你不能通過分配它來「執行」它到腳本標記。 – Tomalak
@Tomalak感謝您的回覆!在上面的示例代碼中,json值沒有存儲在scr中?我相信我的理解有問題。我明白,因爲一個內聯腳本可以採用「text/javascript」或「application/json」等類型值,所以'document.createElement'創建的腳本元素也是可行的。還是我想念的執行呢?如果scr變量確實存儲了json文件,scr.message不是獲得「你真棒!」的正確方法。內容?對不起,如果這些是noob /虛擬問題。 – Webeng