如何正确地将 JS 库(jqueryUI、jquery 插件)包含到 DNN 5 模块中?

发布于 2024-10-02 00:24:57 字数 1461 浏览 5 评论 0原文

我使用 DotNetNuke.Framework.jQuery.RequestRegistration(); 将 jquery 包含到我的模块中,它的工作原理与预期一致。

我通过页面设置/高级设置/页面标题标签将其他脚本包含到我的 DNN 门户中。 它们也会被加载,但无法按预期工作。

就我而言,我想在我的 dnn 模块之一中添加选项卡,并且我使用 jqueryUI 来执行此操作。如果我在 DNN 之外测试这个模块,它会正常工作,但是当安装到 DNN 中时就会出现问题。 我创建了选项卡,但无法在它们之间切换。实际上,我看到了应位于同一页面的单独选项卡中的所有内容。

alt text

这是我来自 module.ascx 文件的 Js 代码。

<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $("#<%= pnlTabs.ClientID %>").tabs();
    });
</script>

如何纠正这个问题? 我认为问题在于所有这些不同的 JS 库混合在一起。那么将另一个 JS 库包含到 DNN 模块中的正确方法是什么?


编辑: 我发现了问题。你能帮忙修一下吗?

<li><a href="DesktopModules/OsControl/#dnn_ctr380_osControl_pnlProcesses">Processes</a></li>

<div id="dnn_ctr380_OsControl_pnlProcesses" style="text-align:left;"> 

问题是 DNN 将“DesktopModules/OsControl/”添加到“li”元素中的链接前面。如何防止这种情况或有其他方法解决这个问题?


EDIT2:

<asp:BulletedList ID="BulletedList1" runat="server" BulletStyle="NotSet" DisplayMode="HyperLink">
    <asp:ListItem Value="#OsControl_pnlProcesses">Processes</asp:ListItem>
    <asp:ListItem Value="#OsControl_pnlServices">Services</asp:ListItem>
    <asp:ListItem Value="#OsControl_pnlEvents">Events</asp:ListItem>
</asp:BulletedList>

这就是我创建链接的方式。

I include jquery into my module with DotNetNuke.Framework.jQuery.RequestRegistration(); and it works like expected.

Other scripts I include into my DNN portal via Page Settings/Advanced Settings/Page Header Tags.
They also get loaded, but they don't work as expected.

In my case I want to have tabs in one of my dnn modules and I'm using jqueryUI to do this. If I test this module outside of DNN it works like it should, but when installed into DNN something goes wrong.
I get the tabs created but I can't switch betwen them. Actualy I see all of the content which should be in separated tabs in the same page.

alt text

This is my Js code from module.ascx file.

<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $("#<%= pnlTabs.ClientID %>").tabs();
    });
</script>

how to correct this ?
I think that problem is that all this different JS libs get mixed. So what is the correct way to include another JS libs into DNN module.


EDIT:
I found the problem. Can you help fix it ?

<li><a href="DesktopModules/OsControl/#dnn_ctr380_osControl_pnlProcesses">Processes</a></li>

<div id="dnn_ctr380_OsControl_pnlProcesses" style="text-align:left;"> 

Problem is that DNN prepends "DesktopModules/OsControl/" to the link in "li" element. How to prevent this or any other way around this ?


EDIT2:

<asp:BulletedList ID="BulletedList1" runat="server" BulletStyle="NotSet" DisplayMode="HyperLink">
    <asp:ListItem Value="#OsControl_pnlProcesses">Processes</asp:ListItem>
    <asp:ListItem Value="#OsControl_pnlServices">Services</asp:ListItem>
    <asp:ListItem Value="#OsControl_pnlEvents">Events</asp:ListItem>
</asp:BulletedList>

This is how I create links.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泪冰清 2024-10-09 00:24:57

我首先建议浏览 本文

添加 jQuery 和 jQuery UI 引用的方式可能会导致问题,请确保在 jQuery.ui.js 之前添加 jQuery.js。

如果您认为几乎所有页面都需要 jQuery,您也可以将 jQuery 注册代码移至皮肤。

最后一件事是添加 控制台日志记录 以查看 firebug 中的日志消息控制台以便您可以快速跟踪脚本参考相关问题

I would first suggest to go through this artilce

The way you are adding jQuery and jQuery UI references may cause problems, please make sure jQuery.js is added before jQuery.ui.js.

If you think almost all the page requires jQuery, you can move your jQuery registration code to skin as well.

last thing is to add console logging to see the log messages in firebug console so that you can quickly track the script reference related problems

如果没结果 2024-10-09 00:24:57

按照以下步骤操作,应该没问题:

  1. 以 HOST 身份登录,转到 Host >门户设置,展开 jQuery 设置节点,然后选中“使用托管 jQuery 版本”
  2. 将所有其他 js 引用添加到 Default.aspx 文件

Follow the steps below, and you should be fine:

  1. Login as HOST, go to Host > Portal Settings, expand jQuery Settings node, and check " Use Hosted jQuery version"
  2. Add all other js references to Default.aspx file
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文