2015-06-19 3 views
0

Я нашел несколько примеров и собрал расширение. Но мне так и не удалось заставить его работать. Всегда появляется ошибка, и теперь я сдался.Расширение Chrome: загрузить внешнюю страницу в iframe и прочитать innerHTML

Может кто-нибудь дать мне полноценный пример о том, как это сделать (если это возможно).

Причина, по которой я хочу загрузить iframe, заключается в том, что если я использую XMLHttpRequest для чтения страницы, я не получу HTML-код, созданный с помощью Javascript.

См. Код ниже.

manifest.json:

{ 
    "manifest_version": 2, 

    "name": "Example ...", 
    "description": "Will let you get browser notifications from ...", 
    "version": "1.0", 
    "content_security_policy": "script-src http://example.com 'self' ; object-src 'self'", 

    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "permissions": [ 
    "http://example.com/*", 
    "notifications", 
    "cookies", 
    ], 
    "background": { 
    "page": "background.html" 
    } 
} 

background.html:

<html> 
    <head> 

    </head> 
    <body> 
     <iframe src="http://www.example.com/"></iframe> 
    </body> 
</html> 

Я попытался создать в IFRAME вместо с помощью JavaScript, но это не имеет никакого значения.

+0

Что такое 'XmlHttpConnection'? – redbmk

+0

Написание ответа, связанного с полным расширением, будет выполнять довольно много грязной работы. У меня есть много exepreince в этом, поэтому, если вы публикуете какой-то код, который у вас есть, это не работает. Я буду рад указать на решение. – orcaman

+0

Я имел в виду XMLHttpRequest (отредактировал). @orcaman Я обновлю свой вопрос с помощью некоторого кода. Извините, если это большая работа, примеры, которые я видел, не были настолько тяжелыми, поэтому я думал, что у кого-то было простое решение. – Whyser

ответ

-1

Подождите, фрейма для загрузки, а затем захватить его содержание с JQuery:

$('iframe').load(function() { 
    $(this).contents().find('html').html(); 
}); 
+0

Не будет работать в междоменном домене (и он будет гарантированно быть междоменным) – Xan

+0

@Xan он работает от расширения Chrome, он может определенно работать с кросс-доменом (вы управляете заголовками ответов, и вы можете это разрешить). – orcaman

+0

Нет, в то время как вы можете отправлять запросы кросс-домена, которые не освобождают вас от обычной безопасности в Интернете при загрузке страницы. Chrome откажет в чтении '.contents()'. – Xan

Смежные вопросы