Вкладки DotNetNuke jQuery не работают

Вкладки и панели JQuery не работают в DNN версии 08.00.03. Он работает только тогда, когда пользователь вошел в систему. Как только пользователь выходит из системы, все панели и вкладки перестают работать.

У меня есть код ниже в модуле HTML:

<div class="dnnForm" id="panels-demo">
        <div class="dnnFormExpandContent"><a href="">Expand All</a></div>
        <h2 id="ChristopherColumbus" class="dnnFormSectionHead"><a href="#">Christopher Columbus</a></h2>
        <fieldset class="dnnClear">
            <img src="<%=ResolveUrl("Images/498px-Christopher_Columbus.PNG") %>" alt="Christopher Columbus" width="32%" class="dnnLeft" />
            <div class="dnnRight" style="width:62%;margin-left:2%">
                <h1>Christopher Columbus</h1>
                <p>Italian navigator, colonizer and explorer whose voyages led to general European awareness of the American continents.</p>
            </div>
        </fieldset>
        <h2 id="IsaacNewton" class="dnnFormSectionHead"><a href="#">Isaac Newton</a></h2>
        <fieldset class="dnnClear">
            <img src="<%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %>" alt="Isaac Newton" width="32%" class="dnnLeft" />
            <div class="dnnRight" style="width:62%;margin-left:2%">
                <h1>Isaac Newton</h1>
                <p>English physicist, mathematician, astronomer, natural philosopher, alchemist, and theologian. His law of universal gravitation and three laws of motion laid the groundwork for classical mechanics.</p>
            </div>
        </fieldset>
        <h2 id="JohannesGutenberg" class="dnnFormSectionHead"><a href="#">Johannes Gutenberg</a></h2>
        <fieldset class="dnnClear">
            <img src="<%=ResolveUrl("Images/Gutenberg.jpg") %>" alt="Johannes Gutenberg" width="32%" class="dnnLeft" />
            <div class="dnnRight" style="width:62%;margin-left:2%">
                <h1>Johannes Gutenberg</h1>
                <p>German printer who invented the mechanical printing press.</p>
            </div>
        </fieldset>
    </div>

В шапку модуля помещается следующий код:

<script type="text/javascript">
    jQuery(function ($) {
        var setupModule = function () {
            $('#panels-demo').dnnPanels();
            $('#panels-demo .dnnFormExpandContent a').dnnExpandAll({
                targetArea: '#panels-demo'
            });
        };
        setupModule();
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
            // note that this will fire when _any_ UpdatePanel is triggered,
            // which may or may not cause an issue
            setupModule();
        });
    });
</script>     

В некоторых вопросах Stackoverflow и других формах упоминалось добавление этой строки кода:

jQuery.RequestDnnPluginsRegistration();

Не уверен, как и где его добавить, и решит ли это проблему. Приведенный выше код взят с этого веб-сайта: http://uxguide.dotnetnuke.com/UIPatterns/Panels.html


person user2536008    schedule 12.08.2016    source источник
comment
Что значит перестать работать? Какие ошибки вы видите в консоли javascript и на вкладке сети?   -  person Jason P    schedule 12.08.2016
comment
Это означает, что панели всегда развернуты. Если вы нажмете на них, они должны свернуть или развернуться. Я получаю эту ошибку в консоли: объект не поддерживает свойство или метод «dnnPanels»   -  person user2536008    schedule 12.08.2016
comment
Я предполагаю, что скрипт, содержащий определение dnnPanels, загружается неправильно (проверьте вкладку сети на наличие ошибок). И поскольку вы упомянули, что вход в систему имеет значение, я предполагаю, что скрипт требует авторизации для доступа.   -  person Jason P    schedule 13.08.2016
comment
На вкладке «Сеть» ошибок нет.   -  person user2536008    schedule 13.08.2016
comment
Попробуйте поместить этот RequestDnnPluginsRegistration над другим опубликованным фрагментом.   -  person Jason P    schedule 13.08.2016
comment
Я пытался, но это не помогло.   -  person user2536008    schedule 13.08.2016


Ответы (2)


Ваш код не будет работать так, как сейчас, пример, который вы использовали, должен быть на кодовой странице .aspx или .ascx из пользовательского модуля или файла скинов/контейнера. Код <%=ResolveUrl("Images/GodfreyKneller-IsaacNewton-1689.jpg") %> нельзя использовать внутри HTML-модуля. Это серверный код.

Если вы посмотрите на этот http://www.dnnsoftware.com/wiki/reusable-dotnetnuke-jquery-plugins вам нужны DotNetNuke.Framework.jQuery.RequestDnnPluginsRegistration(); и ClientAPI.RegisterClientReference(this.Page, ClientAPI.ClientNamespaceReferences.dnn); в коде, чтобы вкладки работали.

Они, вероятно, используются где-то, когда пользователь вошел в систему, поэтому вкладки работают правильно. И если вы создаете свои собственные модули, вы можете добавить эти строки в их код.

Однако после некоторого тестирования я обнаружил, что вы можете добавить эти строки в HTML, и он будет работать.

<script src="/Resources/Shared/Scripts/dnn.jquery.js?cdv=41" type="text/javascript"></script>   
<script src="/js/dnn.js?cdv=41" type="text/javascript"></script>
person VDWWD    schedule 13.08.2016

Возможно, по какой-то причине ваши ресурсы загружаются не по порядку. Что произойдет, если вы завернете свой JavaScript в $(document).ready({

person Andy    schedule 13.08.2016