У меня есть всплывающее окно с JavaScript, оно создается при нажатии на событие onclick тега:
top.popUp('/bus/popup.asp', '', 'height=457px,width=525px,status=no,scrollbars=no,resizable=yes,location=no,menubar=no,toolbar=no');return false;">
function popUp(url, winName, params, win)
{
var winExists = false;
if (win.handler)
{
if (!(win.handler == "" || win.handler.closed || win.handler.name == undefined))
{
winExists = true;
}
}
if (!winExists)
{
win.handler = window.open(url, winName, params)
}
try
{
win.handler.focus();
}
catch (e)
{
}
return false;
}
Я также обнаружил две эти забавные маленькие функции в основном файле, которые запускаются при выгрузке всплывающего окна:
// Hack for onUnload and onBeforeUnload
onBeforeUnloadHappened = false;
closeDirectly = false;
function onBeforeUnloadHandler()
{
if (!closeDirectly)
{
openerUnhilightSaveLink();
onBeforeUnloadHappened = true;
}
}
function onUnloadHandler()
{
if (!closeDirectly)
{
if (!onBeforeUnloadHappened)
{
openerUnhilightSaveLink();
}
else
{
onBeforeUnloadHappened = false;
}
}
}
Проблема в том, что в Safari окно всплывает только один раз, каждый последующий щелчок по ссылке дает вам nada, zilch, ничего ... как мне это исправить?
Я нашел пару статей, Google - мой друг, он-лайн, и они предложили мне добавить this.close (), что я и сделал для события unload, но, похоже, это не решило проблему.
Другая вещь, которую я нахожу странной, заключается в том, что onUnloadHandler () фактически не происходит каждый раз, когда страница выгружается! Разве это не должно вызываться каждый раз самой страницей независимо от того, что еще произошло?!
Спасибо