修改登录页面外观,登录失败时运行javascript / jquery

时间:2012-04-17 13:37:15

标签: module dotnetnuke

我想修改登录页面的外观。我已经在DesktopModules / AuthenticationServices / DNN / Login.ascx中添加了一些jquery和javascript,因此我可以使用虚拟键盘,用户可以使用该键盘输入用户名和密码。问题是当登录失败时,我觉得jquery和javascript脚本没有被执行,因此虚拟键盘没有出现。

我在这个上做了很多搜索。我正在考虑制作一个新的登录模块,但我不确定这将如何或是否能使我解决问题。

有任何建议吗?

DNN版本:6.1.3

3 个答案:

答案 0 :(得分:1)

我建议不要直接更改核心登录,因为它被视为“核心更改”,并且会在升级时被覆盖。它需要您在每次升级之前合并您的更改。

相反,如果您需要这种访问级别,我建议您创建自己的登录模块。

在查看你的问题时,我不认为这是必要的。您可以通过创建和实现外观窗口小部件来实现相同的效果。 Skin小部件允许您以几乎任何您能想到的方式操作UI,因为您可以使用jQuery并注入jQuery插件。

这是一个更加优雅的解决方案,可以扩展,可测试,安全防范升级,并允许您根据需要在多个站点和安装中重复使用它。

小部件和文档的示例可以在以下两个链接中找到:

DNN Widget Suite Project Skin Widget Wiki Article包含许多关联资源

答案 1 :(得分:0)

Will表示你绝对不应该编辑或添加代码到核心文件,因为它们将在DNN升级中被覆盖。你应该只用Javascript来解决这个问题,但你也可以看一下像这样的第三方登录模块:http://www.dnnspot.com/Modules/DotNetNuke-Custom-Login 具有自定义登录视图,登录视图甚至错误消息的功能。所以你应该能够在不同情况下根据需要注入不同的javascript。

免责声明 - 我与DNNspot有联系。

答案 2 :(得分:0)

我使用了这个可爱的javascript On-Screen-Keyboard(OSK)。 (http://www.greywyvern.com/code/javascript/keyboard

我正在使用DNN 5.6.8,所以我不确定我的解决方案是否适用于DNN 6.x.

我修改了我正在使用的“皮肤”的“page.ascx”文件,但我认为你也可以修改默认皮肤的“page.ascx”。

在page.ascx的顶部,在“Register”列表下面我写了这个:

<script type="text/javascript" src="/js/keyboard.js" charset="UTF-8"></script>
<link rel="stylesheet" type="text/css" href="/js/keyboard.css">

这两个文件(keyboard.js和keyboard.css)是屏幕键盘。您可以将它们存储在“/ js”以外的其他文件夹中。

在page.ascx的底部,我放了这个脚本:

<script type="text/javascript">
$(document).ready(function () {
    if (document.getElementById('dnn_ctr_Login_Login_DNN_txtUsername') != null) {
        $("#dnn_ctr_Login_Login_DNN_txtUsername").attr("lang", "es");
        $("#dnn_ctr_Login_Login_DNN_txtPassword").attr("lang", "es");
        VKI_attach(document.getElementById('dnn_ctr_Login_Login_DNN_txtUsername'));
        VKI_attach(document.getElementById('dnn_ctr_Login_Login_DNN_txtPassword'));
    }
});
</script>

这些名称:'dnn_ctr_Login_Login_DNN_txtUsername'和'dnn_ctr_Login_Login_DNN_txtPassword'是我通过右键单击和查看我的DNN网站运行的“查看源代码”看到的,我认为没有理由认为它们在其他DNN网站中可能有所不同,但你可以查看你的。

显然,您必须在DNN安装中激活jQuery。 :)

就是这样。它很棒!!

HTH!