Что нового

Как скачать файл, находящийся под ссылкой на javascript?

Се-рё-жа

Новичок
Сообщения
13
Репутация
0
Добрый день!
На странице по ссылке скачивается файл. Причем, сначала спрашивается что нужно сделать(открыть или сохранить), затем куда сохранить? Мне требуется автоматически сохранить файл в известную директорию. Ссылка организована следующим образом:

Код:
<a id="prFrm134028234" class="iceOutLnk" href="javascript:" onclick="downloadDocument(134028234);return false;">
<script type="text/javascript">var $j=jQuery.noConflict();$j(document).ready(function() {$j('#prFrm134028234').qtip({content: 'Позволяет открыть печатную форму документа или скачать прикрепленный файл.',position:{target: 'mouse', adjust: {mouse: true, screen: true}},api: {onRender: function(){$j('#prFrm134028234').bind('mousedown', this.hide); $j('#prFrm134028234').bind('#keydown', this.hide);}}});});</script>
 <span style="font-weight: bold;">  Аукционная документация.doc № 0312200002413002268   от 21.12.2013 </span></a>

Скрин того, что вылезает при клике на ссылку прикреплен.
Помогите пожалуйста!
 
Автор
С

Се-рё-жа

Новичок
Сообщения
13
Репутация
0
Оказывается можно запускать javascript сценарий через адресную строку (букмарклет). Только, что-то у меня не удается выполнить даже простейший сценарий...
Код:
;пробуем запустить букмарклет javascript
#include <IE.au3>
#include <file.au3>
#include <Inet.au3>

	$hWnd = WinGetHandle('[CLASS:IEFrame]')				
	$oIE =_IEAttach($hWnd, 'embedded',1)
	$sUrl = _IEPropertyGet($oIE, 'locationURL')
	MsgBox(0, 'Сообщение', $sUrl)
	_IENavigate ($oIE,'javascript:alert\("I am bookmarklet"\)',1)


Браузер не выполняет никаких движений.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Се-рё-жа [?]
Причем, сначала спрашивается что нужно сделать(открыть или сохранить), затем куда сохранить?
Почему бы просто не отключить запрос на скачивание файлов?



Добавлено:
Сообщение автоматически объединено:

P.S. Да когда же это закончится???
Wrong value type sent to the database. Array of integers expected. (attachment_list)


Добавлено:
Сообщение автоматически объединено:

Вы не можете зайти в этот раздел
 
Автор
С

Се-рё-жа

Новичок
Сообщения
13
Репутация
0
Файлы с каждой такой страницы необходимо сохранить в свою директорию с уникальным именем, построенным из информации с другой страницы. Потом, там запрос какой-то скриптовый. К примеру страница http://zakupki.gov.ru/pgz/public/action/orders/info/order_document_list_info/show?notificationId=8178459. Похоже изображение, которое я прикрепил, не доступно(или только для меня?). Что закончится? - мне не понятно...

Нашел на форуме тему http://autoit-script.ru/index.php/topic,8151.0.html. Может эта функция как-раз мне поможет?
Код:
_IEHeadInsertEventScript

Буду разбираться.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Автор
С

Се-рё-жа

Новичок
Сообщения
13
Репутация
0
Итак, в коде:
Код:
<a id="prFrm134028234" class="iceOutLnk" href="javascript:" onclick="downloadDocument(134028234);return false;">
<script type="text/javascript">var $j=jQuery.noConflict();$j(document).ready(function() {$j('#prFrm134028234').qtip({content: 'Позволяет открыть печатную форму документа или скачать прикрепленный файл.',position:{target: 'mouse', adjust: {mouse: true, screen: true}},api: {onRender: function(){$j('#prFrm134028234').bind('mousedown', this.hide); $j('#prFrm134028234').bind('#keydown', this.hide);}}});});</script>
 <span style="font-weight: bold;">  Аукционная документация.doc № 0312200002413002268   от 21.12.2013 </span></a>

-присутствует javascript-овая функция downloadDocument(134028234), обращение к которой происходит по клику мыши. Покопавшись в сценариях страницы, нашел её:
Код:
function downloadDocument(a){window.open(appRoot+"/documentdownload?documentId="+a,"")}

- таки где (a)=(134028234). Т.е. мне нужно выполнить скрипт:
Код:
window.open(appRoot+"/documentdownload?documentId=134028234","")

Вот так он выполняется:

Код:
#include <IE.au3>
$oIE = _IECreate ('http://zakupki.gov.ru/pgz/public/action/orders/info/order_document_list_info/show?notificationId=8180433')
$JS='{window.open(appRoot+"/documentdownload?documentId=134385071","")}'
$oIE.document.parentWindow.execScript($JS)


или так:

Код:
#include <IE.au3>
$oIE = _IECreate ('http://zakupki.gov.ru/pgz/public/action/orders/info/order_document_list_info/show?notificationId=8180433')
 $JS='{window.open(appRoot+"/documentdownload?documentId=134385071","")}'
 _IEHeadInsertEventScript ($oIE, "window", "onbeforeunload",$JS)
 _IENavigate ($oIE,'about:blank')


Далее оказывается, что это просто обращение к странице, где appRoot=http://zakupki.gov.ru/pgz. Т.е. мне нужно обратится к http://zakupki.gov.ru/pgz/documentdownload?documentId=134028234, и указать путь сохранения.
Продолжим завтра...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Се-рё-жа [?]
Продолжим завтра...
Отчего же завтра :smile:

Т.е. мне нужно обратится к http://zakupki.gov.ru/pgz/documentdownload?documentId=134028234, и указать путь сохранения.
Код:
Local $hDownload = InetGet("http://zakupki.gov.ru/pgz/documentdownload?documentId=134028234", @ScriptDir & "\Аукционная документация.doc", 1, 1)
Do
    Sleep(250)
Until InetGetInfo($hDownload, 2)
 
Верх