Вопрос

Так что, если я устанавливаю на своем сайте значок с трубкой Yahoo, Yahoo дает мне этот код

<script src="http://pipes.yahoo.com/js/listbadge.js">{"pipe_id":"USER_ID","_btype":"list"}</script>

Обратите внимание на передачу литерала объекта удаленному сценарию. я хотел бы сделать что-то подобное с моими собственными сценариями, как вы взаимодействуете с этим входом?

Это было полезно?

Решение

На самом деле вы не можете передавать переменные таким образом изначально . Что делает 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;
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top