2016-08-10 3 views
0

Мне нужно сохранить данные из кучи всплывающих окон, которые запускаются с помощью JS для извлечения данных из сервера и отображения этих данных в всплывающем окне iframe, ссылка и копирование данных будет длиться вечно ...Сохранение данных из нескольких запущенных всплывающих окон iframe из javascript

Мне нужен способ, чтобы очистить данные, которые я могу потом сортировать

ссылки

<a href="javascript:getReport('111')">LINK</a> 
<a href="javascript:getReport('112')">LINK2</a> 

JS

function getReport(ID) { 
var id = ID; 
var modalType = 'user'; 
parent.parent.$.fn.colorbox({ 
    href: ReportUrl + '?sharedID=' + id + '&modalType=' + modalType, 
    open: true, 
    iframe: true, 
    width: 700, 
    height: 400, 
    title: 'report', 
    close: "<button id=\"Close\" onClick=\"javascript:parent.parent.$.fn.colorbox.close()\">Close</button>", 
    onClosed: false 
}); 

}

Мои мысли 1. есть ли способ, чтобы вызвать их все открывать, копировать все данные затем отсортировать его. 2. Является ли способ сохранить каждый файл в виде html-файла, я снова могу его сортировать.

Как только у меня есть данные, доступные локально, я могу сортировать их с большой проблемой, это просто вопрос о том, как я могу получить данные, я огляделся, но не вижу никакого способа соскабливать данные, Поскольку страница, которую я хочу очистить, не находится на заданном URL-адресе, вам нужно перемещаться по ссылкам JS, которые затем отображают страницу html. Это также все за логином.

Если у кого-то есть предложения, я бы очень благодарен.

+0

Я бы не использовал Javascript или iframes для этого. Я бы использовал 'PHP' и' cURL' для получения страниц. Посмотрите эту ссылку http://www.jacobward.co.uk/web-scraping-with-php-curl-part-1/, чтобы начать. – DelightedD0D

+0

@ DelightedD0D Проблема в том, что сайт находится за логином и страницей, на которой контент не имеет установленного URL-адреса, его сгенерировано через JS, поэтому я могу получить страницу с несколькими тысячами ссылок с моим браузером, но Я не уверен, что это сработает с php/curl, я думал об управлении js, чтобы вызвать все элементы или что-то в этом роде. – ZombieDood

+0

Вам не нужно что-либо из этого, PHP и cURL более чем способны обрабатывать любые логины, которые вам нужны, и вы можете передавать любые переменные, которые вы хотите. Вы даже можете создать URL-адрес с параметрами get так же, как и сейчас. Учитывая статью, с которой я связан, вы можете сделать $ scraped_website = curl ("http://www.example.com?sharedID=1234&modalType=some value"); ' – DelightedD0D

ответ

-1

Если URL-адреса, которые вы пытаетесь очистить, не существуют в том же домене, что и страница, содержащая код «скребок», она не будет работать из-за междоменной безопасности.

В противном случае, вы можете использовать JQuery/AJAX вместо всплывающего окна:

jQuery.ajax({ 
 
    url: ReportUrl + '?sharedID=' + id + '&modalType=' + modalType, 
 
    method: 'GET', 
 
    success: function(res) { 
 
    console.log(res.responseText); // res.responseText is the content from the response, typically HTML source code 
 
    }, 
 
    error: function() { 
 
    console.warn('Something happened'); 
 
    } 
 
});

Опять же, это будет только работа на том же домене.

+0

Хотя это будет работать в некоторых случаях, это очень негибкий и хрупкий подход, особенно когда вы принимаете во внимание все фреймы, которые OP намерен использовать. – DelightedD0D

+0

В настоящее время OP использует фреймы для загрузки и отображения URL-адресов и хочет очистить их содержимое. Мое предложение позволяет соскабливать содержимое без использования iframes, которые, по-видимому, используются здесь только для загрузки содержимого. В том же домене вы также можете получить доступ к DOM содержимого, загруженного IFRAME, но это будет еще более негибким и хрупким, а также потребует больше кода. –

+0

Я понимаю, и это * технически * отвечает на вопрос. Тем не менее, ИМХО, это плохой подход к решению проблемы по многим причинам, не в последнюю очередь из того, что этот подход, несомненно, приведет к тому, что ОП попытается [проанализировать полученный HTML с регулярными выражениями] (http: // stackoverflow. com/questions/1732348/regex-match-open-tags-except-xhtml-self-contains-tags/1732454 # 1732454) или простые манипуляции с строкой, которые абсолютно НЕ подходят для этого. Сценарий на стороне сервера имеет инструменты, специально предназначенные для этого, которые следует использовать вместо этого – DelightedD0D

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