Полезная информация

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№122-09-2011 15:26:02

StSkilur
Участник
 
Группа: Members
Откуда: Crimea, Simferopol
Зарегистрирован: 29-08-2011
Сообщений: 15
UA: Chrome 14.0

Bootstrapped extensions

прочитал статью https://developer.mozilla.org/en/Extens … extensions
но хотелось бы увидеть простой пример работы такого адона в виде кнопки и попапа, кто что может порекомендовать?

Отсутствует

 

№222-09-2011 15:48:33

Tiger.711
‌
 
Группа: Extensions
Откуда: из Лесу
Зарегистрирован: 30-07-2010
Сообщений: 7975
UA: Nightly 9.0

Re: Bootstrapped extensions

Их воз и маленькая тележка. И не только кнопка с попапом (:


Большой кот... Пуфыстый... Полосатый... Зубастый (:

Отсутствует

 

№326-09-2011 19:03:44

StSkilur
Участник
 
Группа: Members
Откуда: Crimea, Simferopol
Зарегистрирован: 29-08-2011
Сообщений: 15
UA: Chrome 14.0

Re: Bootstrapped extensions

спасибо за ответ, но возник вопрос по badge для таких плагинов, кто сталкивался?
и еще есть вот такой код

Выделить код

Код:

// This is an active module of the StSkilur (4) Add-on
data = require("self").data
 
var popupPanel = require("panel").Panel({
  width:643,
  height:500,
  contentURL: data.url("popup.html")
});
 
require("widget").Widget({
  id: "open-popup-btn",
  label: "navify",
  contentURL: data.url("favicon19.png"),
  panel: popupPanel
});

возникла пробелмма с ajax запросом

Выделить код

Код:

function loadFeed(i){   
    var d = $.Deferred();    
    jQuery.support.cors = true;
    $.ajax({
        type: 'GET',
        async: true,
        origin: *,
        url: 'http://webnot.navify.com/ip',
        Access-Control-Allow-Origin:*,
        dataType: 'json',
        cache: false,
        timeout: 30000,
        crossDomain: true,
        success: function(data){
            var ip = data.ip;
            $.jStorage.set('ip', ip);
            userIp = ip;
            _loadFeed(i, d);
        },
        error: function(xhr, ts, error){
            document.write(error);
        },
    });
    return d.promise();
}

отказывается делать крос доменный запрос, возвращает ошибку с запретом доступа, есть ли решения? плагин https://github.com/jamespadolsey/jQuery … main-ajax/ отсюда не помог :(

Отсутствует

 

№428-09-2011 18:19:05

StSkilur
Участник
 
Группа: Members
Откуда: Crimea, Simferopol
Зарегистрирован: 29-08-2011
Сообщений: 15
UA: Chrome 14.0

Re: Bootstrapped extensions

использовать плагин указанный выше получилось, и это делается так

Выделить код

Код:

function loadFeed(i){   
    var d = $.Deferred();    
    jQuery.support.cors = true;
    $.ajax({
        type: 'GET',
        url: 'http://webnot.navify.com/ip',
        success: function(data){
            var ip = data.ip;
            $.jStorage.set('ip', ip);
            userIp = ip;
            _loadFeed(i, d);
        },
        error: function(xhr, ts, error){
            document.write(error);
        },
    });
    return d.promise();
}

а для получения скажем rss от гугла вам необходимо будет изменить плагин

Выделить код

Код:

jQuery.ajax = (function(_ajax){
    console.log(location);
    var protocol = location.protocol,
        hostname = location.hostname,
        exRegex = RegExp(protocol + '//' + hostname),
        YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?',
        //YQL = ‘http://query.yahooapis.com/v1/public/yql?callback=?',
        query = 'select * from html where url="{URL}" and xpath="*"';
    
    function isExternal(url) {
        return !exRegex.test(url) && /:\/\//.test(url);
    }
    
    return function(o) {
        
        var url = o.url;
        
        if ( /get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url) ) {
            
            // Manipulate options so that JSONP-x request is made to YQL
            
            o.url = YQL;
            o.dataType = 'json';
            
            o.data = {
                q: query.replace(
                    '{URL}',
                    url + (o.data ?
                        (/\?/.test(url) ? '&' : '?') + jQuery.param(o.data)
                    : '')
                ),
                format: 'xml'
            };
            
            // Since it's a JSONP request
            // complete === success
            if (!o.success && o.complete) {
                o.success = o.complete;
                delete o.complete;
            }
            
            o.success = (function(_success){
                return function(data) {
                    if (_success) {
                        // Fake XHR callback.
                        _success.call(this, {
                            responseText: data.results[0]
                                // YQL screws with <script>s
                                // Get rid of them
                                //.replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')
                        }, 'success');
                    }
                    
                };
            })(o.success);
            
        }
        
        return _ajax.apply(this, arguments);
        
    };

после получения ответа

Выделить код

Код:

var r = new RegExp('<p>(.*)<\\/p>', 'g');
            var text = r.exec(data.responseText);

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]