Jump to content
  • 0

Вопрос на засыпку


ELNINO
 Share

Question

22 answers to this question

Recommended Posts

  • 0
Вот пришла в голову идея сделать ссылку на часть страницы находящегося на другом сайте.

Можно это вообще как либо осуществить ?

Заранее спасибо.

Свой якорь конечно создать нельзя, а вот использовать уже существующие на том сайте якоря можно.

Link to comment
Share on other sites

  • 0
Свой якорь конечно создать нельзя, а вот использовать уже существующие на том сайте якоря можно.

Не обязательно якорь, может можно как то привязаться с помощью скажем какого нить скрипта к отдельной строке кода)

я конечно фантазер, но а вдруг что то есть такое )

Link to comment
Share on other sites

  • 0

Если вам известны координаты объекта (или строки), к которому должен быть прокручен чужой документ, то в принципе можно. Открываете чужой документ с помощью метода window.open, присваивая результат возвращаемый этим методом, некой переменной (указатель на новое открытое окно), а потом, обращаясь к новому окну с помощью этого указателя-переменной, прокручиваете содержимое открытого окна с помощью метода scrollTo.

Link to comment
Share on other sites

  • 0
Если вам известны координаты объекта (или строки), к которому должен быть прокручен чужой документ, то в принципе можно. Открываете чужой документ с помощью метода window.open, присваивая результат возвращаемый этим методом, некой переменной (указатель на новое открытое окно), а потом, обращаясь к новому окну с помощью этого указателя-переменной, прокручиваете содержимое открытого окна с помощью метода scrollTo.
Что то не очень понял, можно примерчик ?))
Link to comment
Share on other sites

  • 0

Ну, вот допустим, вы знаете, что заветная строка на чужом сайте имеет координаты в окне браузера (0; 400). Абсцисса обычно не имеет значения (поскольку горизонтальная прокрутка — редкость...). Адрес чужого документа, допустим, http://www.anywhere.com/index.htm.

Пишите в своём документе такую функцию:

function openAndScroll(strUrl, strWindowName, strWindowFeatures) {
var newWnd = window.open(strUrl, strWindowName, strWindowFeatures);
newWnd.scrollTo(0, 400);
return false;
}

... и делаете такую ссылку:

<a href="#" onclick="return openAndScroll('http://www.anywhere.com/index.htm','','');">open and scroll</a>

Но сразу стоит оговориться, что это будет работать только если не заявлено никакого DOCTYPE.

Link to comment
Share on other sites

  • 0

Не работает ((

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Якорь</title>
</head>
<script type="text/javascript">
function openAndScroll(strUrl, strWindowName, strWindowFeatures) {
var newWnd = window.open(strUrl, strWindowName, strWindowFeatures);
newWnd.scrollTo(0, 1500);
return false;
}
</script>
<body>
<a href="#" onclick="return openAndScroll('http://www.anywhere.com/index.htm','','');">open and scroll</a>
</body>
</html>

Link to comment
Share on other sites

  • 0

Я проверяю — работает. Повторяю, что ни в открывающем, ни в открываемом документе не должно быть объявления DOCTYPE.

P.S. У меня только в FF не работает...

P.P.S. Хм. По-видимому, это работает только с документами на localhost'е, а попытка выполнить метод scrollTo на чужом сайте приводит к ошибке доступа... :)

Edited by Styx
Link to comment
Share on other sites

  • 0
Я проверяю — работает. Повторяю, что ни в открывающем, ни в открываемом документе не должно быть объявления DOCTYPE.
А ну я то пробовал, на http://www.anywhere.com/index.htm, а там есть доктайп. В таком случае способ, к сожалению, совсем не юзабелен, потому что в 99% доктайп прописан на каждой странице. Edited by ELNINO
Link to comment
Share on other sites

  • 0

Доктайп, имхо, ни при чем. А вот домен, да, должен совпадать — могущество JS заперто в пределах одного домена, иначе "умельцы"-скриптописатели далеко зашли бы :). Отсюда вывод — в общем случае средствами HTML/CSS/JS поставленная задача нерешаема.

И еще, чтоб проскроллить окошко, страница в него уже должна быть загружена. Поэтому вместо newWnd.scrollTo(0, 1500); имеет смысл (не в этой конкретной ситуации, конечно, а когда вообще имеет) писать что-то вроде newWnd.onload = (function(wnd) { return function() { wnd.scrollTo(0, 1500); }})(newWnd);

Link to comment
Share on other sites

  • 0
Доктайп, имхо, ни при чем. А вот домен, да, должен совпадать — могущество JS заперто в пределах одного домена, иначе "умельцы"-скриптописатели далеко зашли бы :). Отсюда вывод — в общем случае средствами HTML/CSS/JS поставленная задача нерешаема.
Тогда наверное имеет смысл загружать сохраненную копию страницы на свой сайт, и там уже ставить якорь, принципе для пользователя разницы не будет, по всем ссылкам он попадет на оригинал, но хотелось бы конечно иметь волшебный способ )) Edited by ELNINO
Link to comment
Share on other sites

  • 0
А ну я то пробовал, на http://www.anywhere.com/index.htm, а там есть доктайп.

Ёпрст... Я написал адрес от балды, а оказывается, такой сайтец на самом деле имеется в тесном пространстве www. o_O

Edited by Styx
Link to comment
Share on other sites

  • 0
Эээм, а ничего что скролту вроде как вещь весьма зависимая от размера экрана?))

Координаты объекта можно определить и динамически, так что это не страшно. Впрочем, какая разница, раз всё равно задумка работать не будет. :)

Edited by Styx
Link to comment
Share on other sites

  • 0
Если на своём сайте поставить irfame на необходимый сайт, то можно найти в доме тот элемент, поставить рядом с ним якорь и прокрутить айфрэйм до необходимого места

Я тож об этом подумал, но это не есть решение поставленной задачи.))

Link to comment
Share on other sites

  • 0

Дурацкие права доступа ограничивают такой великолепный и мощный язык, как javascript

Оказалось, нельзя отправить асинхронный запрос на другой домен

С плавофреймом то же самое...

А можно как-нить на php отправить запрос на другой сервер и получить результат (хтмл-код, который вернул сервер)?!?!!??

Edited by Boris.d
Link to comment
Share on other sites

  • 0
Оказалось, нельзя отправить асинхронный запрос на другой домен

Самый быстрый способ устроить DDoS атаку, стырить персональные данные, отправить персональные данные куда-то, пока пользователь их вводит и так далее.

А можно как-нить на php отправить запрос на другой сервер и получить результат (хтмл-код, который вернул сервер)?!?!!?

Можно. Начиная от wget и заканчивая fopen

Link to comment
Share on other sites

  • 0

Я старался. Некоторые люди считают себя очень особенными. Особенно когда приходят к кому-то в гости и игнорируют просьбы общества.

Для таких уникумов у меня есть ряд мер. Одна из них - вот такая подпись.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy