2010-10-02 5 views
0

Я пытаюсь получить этот код работает -JQuery и Adobe AIR конфликт

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

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

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

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

Помощь!

ответ

2

Вы можете добиться того, что вы пытаетесь сделать (я думаю) без использования воздуха 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-запросы. Воздух также позволит неограниченный доступ к локальной файловой системе. Вам нужно быть очень осторожным, чтобы вы не включали какие-либо вредоносные скрипты, используя этот метод.
Вы должны обязательно предпринять шаги для дезинфекции ответа, например, с помощью dataFilter(data, type), чтобы удалить любые элементы сценария.

+0

На самом деле я просто хочу, чтобы экран царапать страницу. Так что не волнуйтесь :-) – kapeels

+0

Спасибо за ответ. Это дало мне представление о том, чего я хочу! Ниже приводится точный код, который я использую, чтобы продолжить очистку экрана. Большое спасибо! :) – kapeels

0

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

Этот код предупреждает содержимое html #header.

$(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); 
} 

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

1

Это делают таким образом:

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); 
    } 
}