2016-10-26 17 views
0

Стандартный способ включения manifest.json:manifest.json непосредственно в HTML-коде (без файла)

<link rel="manifest" href="manifest.json">

Есть ли способ включить содержание manifest.json непосредственно в HTML-документе?

(Причина этого заключается в том, чтобы избежать запроса HTTP, и сделать автоматическую генерацию файла на основе тегов, доступных только непосредственно в шаблоне HTML)

Чтобы быть более точным, здесь не- работая пример того, что я пытаюсь сделать, только за идею:

<link rel="manifest" content="{"name": "Web Starter Kit", "other options": "directly here"}">

ответ

0

Прежде всего, не следует использовать одни и те же котировки. HTML считает, что это

content= 
"{" 
name 
": " 
Web Starter Kit 
", " 
other options 
": " 
directly here 
"}" 

Plus ссылка не может иметь содержание атрибута, поэтому используйте <script type="application/json">

Далее, чтобы использовать точечную нотацию следует исключить пробелы в manifest.other options могут запутать программы.

Теперь для чтения использовать JSON

var manifest= document.getElementById('myJSON').innerHTML; //sets manifest to the text in #myJSON 
manifest= JSON.parse(manifest) //Converts it into JSON 

Ниже рабочий пример того, что вы хотите.

//var manifest= JSON.parse(document.getElementById('myJSON').innerHTML); /*Shortend of 2&3*/ 
 
var manifest= document.getElementById('myJSON').innerHTML; //sets manifest to the text in #myJSON 
 
manifest= JSON.parse(manifest) //Converts it into JSON 
 
document.getElementById('test').innerHTML= manifest.name+ '<br/>'+ manifest.otherOptions; //Displays it 
 
console.log('manifest') 
 
console.log(manifest);
<head> 
 
<script type="application/json" id="myJSON"> 
 
    {"name":"Web Starter Kit", "otherOptions":"directly here"} 
 
</script> 
 
</head> 
 
<body> 
 
<p id="test"></p> 
 
</body>

И да, вы можете использовать <script> для Javascript, а также иметь глобальные переменные (переменные не в функциях)