Доброго времени суток!
Имеется следующая связка:
В одном проекте на форме имеется кнопочка, в обработчике клика через JavaScript'овский метод window.open(путь_к_другому_проекту) открывается окошко с формой другого проекта. На открывшейся форме производятся некие действия, после чего отрабатывает javascript вызывая метод (javascript'овский, естественно) родительской формы при помощи window.opener.имя_метода(), и дочернее окно закрывается.
Так вот, если оба проекта расположены на одном сервере, то всё это отлично работает. А вот если на разных (в т.ч. первый проект на машине разработчика пущенный из под студии, а второй на стенде под IIS), то при попытке вызова метода родительского окна выдаётся ошибка "Permission Denied". Как обойти данный трабл?
вот примерный код:
метод, открывающий дочернее окно
<script language="javascript" type="text/javascript">
function showDialog()
{
var url = "некий_урл_ведущий_на_другую_машину";
window.open(url, 'selectClient', 'status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes');
}
</script>
метод, отрабатывающий в дочернем окне
<script type="text/javascript">
function SetOpenerClient()
{
if (window.opener != null)
{
window.opener.SomeMethod(); /*собственно, вот тут ошибка и выскакивает*/
window.close();
}
}
</script>
вызываемый метод может быть любой, например
<script type="text/javascript">
function SomeMethod()
{
alert('done');
}
</script>
P.S. Сразу хочу сказать, что вызов дочернего окна методом window.showModalDialog() в данном случае мне не подходит, даже если в этом случае методы родительского окна удастся вызывать при любом расположении проектов на серверах. It’s easier to learn how to develop Web clients once you understand who the players are. I have seen many people attempt to learn Web development without learning the roles of the Web browser, HTTP, and the Web server. It’s not a pretty sight.
Glenn John
|