2014-12-29 3 views
-2

Возможно ли получить HTML-код div с другой страницы в переменной в виде строки, поэтому я могу запустить поиск по регулярному выражению, чтобы найти определенный номер?Загрузка содержимого с другой страницы в переменную в виде строки

+0

Это точно, но только на клиентов, возможно, нет? – adeneo

+0

из того же домена да, из другого домена вам необходимо проксифицировать его на стороне сервера –

+0

Возможный дубликат http://stackoverflow.com/questions/4560183/load-content-from-external-page-into-another-page- using-ajax-jquery? rq = 1 –

ответ

0

Если другая страницав собственном домене:
jsBin demo

$('<div />').load("otherpage.html", function(data){ 
    var num = /\d+/.exec($(this).find("#number").text()); 
    console.log(num); // 45 
}); 

Примечание: вышеизложенное предполагает, что желаемое число находится где-то внутри элемента #number. Регулярное выражение /\d+/ используется для получения всех чисел из этого элемента.


Если страница не в домене:
jQuery load external site page

вам сначала нужно получить, что содержимое страницы с помощью PHP с file_get_contents. После того, как желаемый контент находится на вашем сервере, вы больше не будете запускать проблемы безопасности, и вы можете ответить на AJAX с захваченным контентом.

+0

Спасибо, это именно то, что мне нужно. :) –

+0

@hermos_ вы очень желанны! Спасибо –

0

Если вы загружаете содержимое из того же домена, переливной ответ @lawrence связан с его комментарием будет делать трюк: Load content from external page into another page using Ajax/jQuery

JS с JQuery:

$(document).ready(function() { 
    $("#main").load('sourcePage.html #content'); 
}); 

В противном случае, вы» Необходимо использовать серверную технологию. Вот сервер Node.js, что прокси для другого сайта:

JS (Node и Express):

var request=require('request'); 
var express = require('express'); 
var app = express(); 

//Put the source URL here: 
var URL='http://www.nytimes.com'; 

app.get('/', function (req, res) { 
    res.type('.html'); 
    request(URL,function(err,response,body){ 
     res.send(body); 
    }); 
}); 

var server = app.listen(3000, function() { 
    var host = server.address().address; 
    var port = server.address().port; 
    console.log('listening at http://%s:%s', host, port); 
}); 
+0

вместо того, чтобы обертывать вокруг головы, как установить узел и прочее, достаточно одной строки PHP и AJAX (стандартный jQuery snip). –

+0

Я хотел показать, как скопировать страницу в определенный регион, а также как сделать решение более гибким. Кроме того, это было помечено как вопрос JavaScript, поэтому я дал ответ на JavaScript. Не могли бы вы дать свое PHP-решение? –

+0

@Roko C. Buljan: Я упростил код в ответ на ваши комментарии. Справедливо. –

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