На самом деле вы не можете передавать переменные таким образом изначально . Что делает Yahoo, так это то, что в своем файле listbadge.js он просматривает все теги <script>
на странице, пока не находит тот, который его включил, а затем анализирует innerHTML как JSON.
Их источник был слегка запутан, но вот мое лучшее понимание этого.
var scripts = document.getElementsByTagName("SCRIPT");
for (var i = 0; i < scripts.length; i++) {
var includeString = scripts[i].src;
if (includeString.match("listbadge.js")) {
if (scripts[i].innerHTML){
var passedVariables = parseJson(scripts[i].innerHTML);
}
break;
}
}