Пользовательский скрипт в Chrome, Cross-Origin Communication - PullRequest
5 голосов
/ 01 декабря 2011

У Chrome есть своя Greasemonkey, в любом случае у него много ограничений. Одним из них является то, что его xmlhttprequest не поддерживает Cross-Origin. Так есть ли способ заставить его работать?

спасибо

Ответы [ 2 ]

1 голос
/ 22 января 2012

Если вы также хотите, чтобы скрипт был дружественным для Opera, вы все равно не сможете использовать GM_xmlhttpRequest.Однако, используя YQL и jQuery, вы можете сделать это так:

var getCrossDomain = function (url, callback, maxage) {
        if (typeof (url) !== 'undefined') {
            var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + url + '"') + '&diagnostics=false&format=xml&callback=?&_maxage=';
            if (typeof (maxage) === 'undefined') {
                yql += '10000'; // Value is in ms
            }
            $.getJSON(yql, function (data) {
                if (typeof (callbackX) === 'function') {
                    callback(data.results[0]);
                }
            }).fail(function (jqXHR, textStatus, errorThrown) {
                // Some code here to handle a failed request
            });
        }
    };

Считайте http://www.yqlblog.net/blog/2010/03/12/avoiding-rate-limits-and-getting-banned-in-yql-and-pipes-caching-is-your-friend/ для получения информации о параметре maxage.

...