2015-06-15 3 views
1

Я попытался получить форму названия продукта amazon (Canon EF-S Teleobiettivo Compatto, 55-250 мм F/4-5.6 IS STM, Nero), как я могу получить идентификатор этого элемента ? Я написал это, но это ничего не показывает, если я не ставлю .innerHTML это показывает «нуль»Использовать другие сайты id элемента javascript

function writeText() { 
    text1 = document.getElementById("http://www.amazon.it/dp/B00EP71ETU#productTitle"); 
    //document.write(text1.innerText) 
    document.getElementById("outputDiv").innerHTML = (text1) 
} 

«outputDiv» просто: <div id="outputDiv"></div> внутри тела с кнопкой, по нажатию вызова WRITETEXT ()

+5

в этом случае я бы предложил читать книгу о JavaScript, потому что это даже не отдаленно, как это работает? – adeneo

+3

Вы передаете URL-адрес 'getElementById' в ожидании, что он получит элемент с этой страницы? Это не так, это не так, как это работает; даже если это возможно, вы не можете взаимодействовать с документом страницы, размещенной в другом домене, чем ваша. Чтобы сделать это правильно, вы должны использовать API веб-сервисов Amazons. –

ответ

1

Вы не можете использовать getElementId для доступа к DOM другой странице. Для чего-то вроде этого вам нужно использовать ajax для получения страницы Amazon, а затем проанализировать этот результат для идентификатора, который вы ищете.

Если вы можете использовать JQuery, как правило, вы бы быть в состоянии использовать свой метод load получить страницу с внешнего сайта:

$("#outputDiv").load("http://www.amazon.it/dp/B00EP71ETU #productTitle"); 

В этом случае, однако, Amazon не позволяет Cross-site HTTP requests, так что если вы пошли по этому пути вы, вероятно, придется выполнить вызов AJAX через прокси-сервер для доступа к внешней страницы, используя что-то вроде этого:

$.get("proxy.php", { url: "http://www.amazon.it/dp/B00EP71ETU" }, function(data){ 
    var $html  = $(data), 
     productTitle = $html.find('#productTitle').text(); 

     $('#outputDiv').text(productTitle); 
}); 
Смежные вопросы