Конфликт jQuery и Adobe AIR - PullRequest
       0

Конфликт jQuery и Adobe AIR

0 голосов
/ 02 октября 2010

Я пытаюсь заставить этот код работать -

var loader;    
$(function() {    
    loader = new air.HTMLLoader();    
    loader.addEventListener(air.Event.COMPLETE, complete);    
    loader.load(new air.URLRequest('http://www.lilpirate.net/blog'));
});      
function complete() {   
    $(loader.window.document).ready(function(){
    $("#texts").val($("#header",loader.window.document).val());
    alert("Complete!");                                 
    });
}     

После компиляции с использованием adl открывается окно и все идет как положено, но в терминале я получаю сообщение

Ошибка: ошибка Adobe Flash Player: не удалось загрузить библиотеку cURL

Я получаю полный! предупреждающее сообщение, но текстовая область с текстами идентификаторов не обновляется данными в #header, который находится на http://www.lilpirate.net/blog

Я думаю, что это происходит из-за сообщения об ошибке, которое выдает adl.

Я использую Fedora 13 x64 и правильно установил flash player (тест firefox). У меня также установлены пакеты libcurl и libcurl-devel.

Помощь!

Ответы [ 3 ]

2 голосов
/ 03 октября 2010

Вы можете добиться того, что вы пытаетесь сделать (я думаю), не используя air HTMLLoader, как это:

$(function() {    
    $.ajax({
        url: 'http://www.lilpirate.net/blog',
        success: complete,
        dataType: 'html'
    });
});
function complete( html ) { 
    var header = $(html).find('#header').html();
    $('#texts').html( header );
}     

ПРИМЕЧАНИЕ ПО БЕЗОПАСНОСТИ
Лучше просто сказать, что это работает, потому что воздух разрешает междоменные запросы AJAX. Air также разрешит неограниченный доступ к локальной файловой системе. Вы должны быть очень осторожны, чтобы не использовать вредоносные скрипты с использованием этого метода.
Вы должны определенно предпринять шаги для очистки ответа, например, используя dataFilter(data, type) для удаления любых элементов скрипта.

1 голос
/ 12 августа 2011

Это так:

function getUrlSource(sourceurl){
    var url = new air.URLRequest(sourceurl);
    var loader = new air.URLLoader();
    loader.addEventListener(air.Event.COMPLETE, loadComplete);
    loader.load(url);
    function loadComplete(e){
        mydata = loader.data;
        $("#dump").html(mydata);
    }
}
0 голосов
/ 03 октября 2010

Я работал, используя следующий код для получения данных в HTMLLoader.

Этот код предупреждает содержание html заголовка #.

$(function() {    
    $.ajax({
          url: 'http://www.lilpirate.net/blog',
          success: callComplete,
          dataType: 'html'
    });
});
var loader;
function callComplete( html ) {                                                         
    loader = new air.HTMLLoader();                     
    loader.addEventListener(air.Event.COMPLETE, processComplete);                                
    loader.loadString(html);                           
}       
function processComplete() {
    var header = $('#header',loader.window.document).html();
    alert(header);
}

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...