Member 12554029 Ответов: 5

Доступ к компоненту div другой страницы, к которой вы обращаетесь


Как я могу выполнить эту инструкцию IdDiv.Style.Добавить ("display", "block") из другого aspx?
Div является на page1.aspx, который я хочу сослаться на страница2.aspx-файл.
инструкция работает без проблем но на странице где находится Div

Что я уже пробовал:

IdDiv.Style.Add ("display", "block") 


<%--head--%>
 <div id="IdDiv" runat="server"  style=" visibility:visible ;HEIGHT: 100%; WIDTH: 100%; POSITION: absolute; LEFT: 0px; FILTER: alpha(opacity=50);; Z-INDEX: 2490; TOP: 0px; BACKGROUND-COLOR: threedshadow; opacity: 0.5"></div>

5 Ответов

Рейтинг:
32

F-ES Sitecore

Страница1

<body>
    <form id="form1" runat="server">
        <div id="IdDiv" runat="server"  style=" visibility:visible ;HEIGHT: 100%; WIDTH: 100%; POSITION: absolute; LEFT: 0px; FILTER: alpha(opacity=50);; Z-INDEX: 2490; TOP: 0px; BACKGROUND-COLOR: threedshadow; opacity: 0.5">
            Page1
        </div>
    </form>

    <script type="text/javascript">
        function hideDiv() {
            var div = document.getElementById('<%=IdDiv.ClientID%>');
            div.style.display = 'none';
        }
    </script>
</body>


Страница 2

<body>
    <form id="form1" runat="server">
        <div>
            Page2
        </div>
    </form>

    <script type="text/javascript">
        window.addEventListener('beforeunload', function (event) {
            window.opener.hideDiv();
        });

    </script>
</body>


Member 12554029

scripst не работает для меня, они не скрывают фон, Страница 1, которая находится там, где Div, чтобы скрыть, имеет этот эскрипт


функция hideDiv () {
var div = document.getElementById ('&lt;% = background.ClientID%>');
див.стиль.дисплей = значение 'None';

<pre>
}
усилителя;amp; lt;/ скрипт&амп;ГТ;&ЛТ;/пре&ГТ;


и страница, которая закрывается и должна отдать приказ спрятать ее, имеет это другое

<script type = "text / javascript">
window.attachEvent ('beforeunload', функция (событие) {
окна.нож.hideDiv ();
});

<pre>
усилителя;amp; lt;/ скрипт&амп;ГТ;&ЛТ;/пре&ГТ;

Рейтинг:
2

F-ES Sitecore

Страницы существуют только тогда, когда пользователь запрашивает их, поэтому вы не можете обновлять одну из них из другой. Вместо этого сохраните что-то в сеансе, если div на странице 2 нуждается в обновлении;

Session("MakeBlock") = True


Затем в событии загрузки страницы 2 проверьте это значение сеанса, и если оно существует и истинно, то добавьте стиль, а затем установите переменную сеанса в Nothing.


Member 12554029

что я делаю, так это Запускаю страницу 2 со страницы 1, Страница 1 также активирует div: div.Стиль.Добавьте ("display", "block") и страница 2 деактивирует его, сделав div.Стиль.Добавить (" display "," none ")

F-ES Sitecore

Как запустить страницу? Связь? окна.открыться? iframe? Вы должны помнить, что мы не можем получить доступ к вашей системе, мы знаем только то, что Вы нам говорите. Вы можете добавить параметр к url-адресу страницы 2, если ему нужно изменить стиль, так что

страница2.аспн?блока=истина

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

Member 12554029

Кстати, чтобы перейти на страницу выглядит следующим образом:
на странице 1.aspx.vb я поместил это:
Дим newWin как в окне string=".Страница 2 Открыть ('.aspx-файл', 'настроек', 'топ = 300, левая = 400, ш = 700, высота = 500, состояние = да')" ClientScript.RegisterStartupScript (Me.GetType (), "popup", newWin, True)

F-ES Sitecore

Поэтому добавьте параметр в строку запроса, если это необходимо, и измените страницу 2, чтобы получить доступ к параметру и добавить стиль, если он там есть.

Member 12554029

Как я мог это сделать?

F-ES Sitecore

Вы не объяснили, при каких обстоятельствах должен применяться стиль, что вызывает решение?

Member 12554029

Когда я закрываю страницу 2 div на странице 1 должен выполняться
див.стиль.Добавить ("display", "none")

Member 12554029

В решении, которое вы мне даете, где находится инструкция, эквивалентная div.Стиль.Добавить ("display", "none")? это может быть в AJAX?

F-ES Sitecore

Это код на стороне сервера, который запускается только тогда, когда страница запрашивается с сервера. Вы не можете запустить этот код в ответ на события javascript на клиенте, поэтому вам нужно сделать эквивалент в javascript, который является

ВАР, див = документ.метода getElementById('&л;%=IdDiv.Идентификатора ClientID%&ГТ;');
див.стиль.дисплей = значение 'None';

Рейтинг:
2

Member 12554029

У меня есть проблема с этим решением, оно отлично работает, но когда я нажимаю любую кнопку, div скрывает меня, как я могу сделать это только тогда, когда я закрываю окна?


F-ES Sitecore

Нет никакого способа узнать, когда пользователь закрывает браузер, это одна из многих причин, почему этот тип решения плох, и вы никогда не увидите его на других сайтах. У вас нет никакого реального контроля над тем, что клиент делает на своей машине или с помощью своего браузера.

Member 12554029

там должен быть безопасный знак закрытия окна для какого-то места, я использую OnClientClick = "window.close(); для закрытия окон

Richard Deeming

Если вы хотите прокомментировать решение, нажмите кнопку "есть вопрос или комментарий?" кнопка под этим решением.

НЕ опубликуйте свой комментарий как новое "решение"!

Рейтинг:
1

Member 12554029

scripst не работает для меня, они не скрывают фон, Страница 1, которая находится там, где Div, чтобы скрыть, имеет этот эскрипт

<script type = "text / javascript">
         function hideDiv () {
             var div = document.getElementById ('<% = background.ClientID%>');
             div.style.display = 'none';

         }
    </ script>

и страница, которая закрывается и должна отдать приказ спрятать ее, имеет это другое
<script type = "text / javascript">
          window.attachEvent ('beforeunload', function (event) {
             window.opener.hideDiv ();
         });
 
     </ script>


Рейтинг:
1

Member 12554029

решено: исправлены некоторые ошибки скрипта
Большое вам спасибо за Ваш вклад.
страница 2

<script type = "text / javascript">
          window.attachEvent ('onbeforeunload', function (event) {
              window.opener.hideDiv ();
             
         });
 
     </ script>

страница 1

<script type = "text / javascript">
          function hideDiv () {
             var div = document.getElementById ('<% = IdDiv.ClientID%>');
             div.style.display = 'none';
            
          }

     </ script>