Add onload function to an opening window

Asked
Viewd6519

0

How to add an onload function to an opened window? (target is "self", not window.open, just a regular link)

Is it possible with onbeforeunload or something? Or add onclick to the "normal link"?

I mean like this:

<a href="page2.htm" onclick="theWindowIHaveOpened.onload = function(){alert('loaded')}">...
  • Why would you need to add an onload function after the page has loaded? It wouldn’t do anything.

    jimyi26 июля 2009, 19:15

2 ответов

0

С помощью обработчика onclick для ссылки и внешнего фрагмента скрипта вы можете сделать что-то вроде:

 <script type="text/javascript">
function loadHandler()
{
    // do stuff
}

function clickHandler(elem)
{
    h = window.open();
    h.onload = loadHandler;
    h.location.href = elem.getAttribute('href');
    return false;
}
</script>

<a href="page2.htm" onclick="return clickHandler(this);">Linky</a>
 

Хотя, конечно, вам может потребоваться поработать с этим, чтобы он работал в разных браузерах.

Изменить . Добавлен оператор return, поэтому нормальная навигация по тегу <a> подавлена.

  • So you need the link to load in the current window, but set up something to happen when the page it points to finishes loading? Do you have control over the page it points to? If not, then I’m afraid there’s nothing you can do. If you do have control over it, let me know and I’ll edit my original answer with a possible solution.

    Matt Sach08 сентября 2009, 10:51
  • О да, упс. Извини, тогда проигнорируй мою идею! Да, без использования window.open () вы не можете получить ссылку на новое окно, чтобы управлять им. Есть ли особая причина того, что вы можете создать обработчик onclick, но не можете использовать window.open ()?

    Matt Sach27 июля 2009, 07:04
  • Question states no window.open

    epascarello26 июля 2009, 22:28
  • проблема только в «мишени»… мне нужно открыть окно «_self», и это откроет страницу в новом окне.

    user07 сентября 2009, 17:24
1

Нет, вы не сможете управлять следующей страницей с помощью простого http-вызова ссылки.