Наложение только части внешней страницы с помощью jQuery

Как я могу загрузить часть внешней страницы с наложением jQuery?

У меня есть вызов aspx TipoFactor.aspx, в котором есть div внутри заполнителя содержимого, например:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <br />
        <div id="DivGeneral" runat="server" class="tablaPaddingFiveCeleste">

как вы можете видеть, DivGeneral — это тот, который я хочу загрузить в оверлей, который определяется следующим образом:

<a href="TipoFactorSeleccion.aspx" rel="#overlay">
                <button type="button">
                    Pagina Externa</button>
            </a>
            <!-- overlayed element -->
            <div class="apple_overlay" id="overlay">
                <!-- the external content is loaded inside this tag -->
                <div class="contentWrap">
                </div>
            </div>
            <script type="text/javascript">
                $(function() {
                    // if the function argument is given to overlay, 
                    // it is assumed to be the onBeforeLoad event listener 
                    $("a[rel]").overlay({

                        expose: 'darkred',
                        effect: 'apple',

                        onBeforeLoad: function() {

                            // grab wrapper element inside content 
                            var wrap = this.getContent().find(".contentWrap");

                            // load the page specified in the trigger 
                            wrap.load(this.getTrigger().attr("href"));
                        }

                    });
                });
            </script>

Поскольку теперь он загружает всю страницу в оверлей, и это нехорошо для меня, потому что он наследуется от той же мастер-страницы, что и другая. Мне нужно сохранить эту мастер-страницу, потому что она имеет некоторые важные функции приложения.

Что я могу сделать?


person euther    schedule 08.03.2010    source источник


Ответы (1)


Предполагая, что я вас правильно понял, когда вы используете API jQuery "load()", вы можете проникнуть в выражение селектора jQuery в строке URL:

$('#loadDestination').load('http://some.where/content #onlyThisPart', function() { ... });

это говорит jQuery искать '#onlyThisPart' в теле ответа, и это все, что он добавляет к вашему основному документу.

Таким образом, вы изменили бы свой код примерно так:

// ...
wrap.load(this.getTrigger().attr("href") + ' #divGeneral');

или любое значение «id», которое отмечает, где начинается ваш контент.

person Pointy    schedule 08.03.2010
comment
спасибо за точку, это не сработало, но я думаю, это потому, что я мало знаю о jquery, только начинаю его использовать. Я собираюсь включить эту другую страницу в то же самое, но как скрытый div. Большое тебе спасибо. - person euther; 08.03.2010