2014-02-17 3 views
0

Я работаю над программой JS, которая должна открыть веб-страницу www.mysite.com & нажмите на ссылку внутри этой веб-страницы, чтобы загрузить pdf-файл. Ссылка на кнопку выглядит следующим образом:Javascript: Нажмите ссылку для загрузки pdf

<a onclick="download();return false;" href="#noWhere">Click to Download</a> 

Обычно вручную, нажав на ссылку, вызывает следующую функцию для загрузки PDF:

function download() { 
    document.forms[0].action = path + "/xxW04_sv_0140Action.do"; 
    document.forms[0].target = "_self"; 
    document.forms[0].submit(); 
} 

Мой код упрощена Javascript код, чтобы открыть страницу & нажмите на «нажмите для загрузки» кнопка это:

<script> 

var linkname = "http://www.mysite.com"; 

var windowname = "window_1" 

// Opens a new window 
var myWindow = window.open(linkname, windowname ,"width=400,height=600");  

//should open a link to download pdf 
myWindow.document.getElementById('href = \"#noWhere\"').click(); 

</script> 

до сих пор я могу открыть веб-страницу «mysite.com» в отдельном окне нас но по какой-либо причине не происходит нажатия кнопки, и, конечно же, не загружается pdf. Конечно, если я вручную нажму кнопку «Нажмите, чтобы загрузить», она будет загружена.

Может ли кто-нибудь сказать мне, что я делаю неправильно? Почему я не могу имитировать щелчок с указанным выше кодом js?

Или, возможно, попробуйте некоторые вещи. Любая помощь очень ценится и чем вы.

ОБНОВЛЕНИЕ: Из первых ответов ниже, возможно, этот метод обречен на провал! Может ли кто-нибудь предложить лучший способ, которым я мог бы загружать эти pdf-файлы?

+0

Вы не можете нажимать на сайты с помощью javascript, если они не находятся в том же домене, что и ваш скрипт. Почему вы не можете просто скопировать URL-адрес .pdf в свой скрипт? – Adassko

+0

getElementById ('href = \ "# noWhere \"') не будет работать. Строка, которую вы передаете этому методу, не является идентификатором. Вы должны использовать querySelectorAll – kamilkp

+0

@kamilkp, я думал, что getElementById ('href = \ "# noWhere \"') может быть длинным, но thre не является id как таковым в ссылке. Вы видите какой-либо другой способ идентифицировать эту ссылку? Как использовать «querySelectorAll»? – arpeggio

ответ

0

Это не сработает. same-origin policy не позволит вам получить доступ к содержимому любых страниц, загруженных из другого домена.

Кроме того, как указано @kamilkp, вы должны указать функцию getElementById() с идентификационным значением. Вы не можете просто подключить к нему какие-либо старые вещи и ожидать, что он сработает.

Другая проблема заключается в вашей зависимости от кликов для этого. Как насчет пользователей, которые используют клавишу табуляции, чтобы выбрать ссылки, а затем нажмите Введите, перейдя по ссылке?

+0

Спасибо, что позволил мне сейчас рассказать о «той же политике происхождения» Adassko & @Squeamish. если я не могу использовать JS, могу ли я использовать какой-то другой язык сценариев? – arpeggio

2

Вы бы лучше использовать:

<a href="http://www.mysite.com/mypdf.pdf"> 

Это необходимо скачать этот файл PDF.

+0

Я хотел бы использовать путь к файлу @Karlo Sintic, как и выше, но я не знаю. PDF-файлы свободно загружаются с веб-сайта, но поскольку их так много раз в неделю, я хотел бы автоматизировать процесс загрузки. В любом случае, я могу узнать путь к PDF-файлу? Как я уже сказал, обычно я просто нажимаю на этот href, который, кажется, запускается – arpeggio

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