在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