我想修改登录页面的外观。我已经在DesktopModules / AuthenticationServices / DNN / Login.ascx中添加了一些jquery和javascript,因此我可以使用虚拟键盘,用户可以使用该键盘输入用户名和密码。问题是当登录失败时,我觉得jquery和javascript脚本没有被执行,因此虚拟键盘没有出现。
我在这个上做了很多搜索。我正在考虑制作一个新的登录模块,但我不确定这将如何或是否能使我解决问题。
有任何建议吗?
DNN版本:6.1.3
答案 0 :(得分:1)
我建议不要直接更改核心登录,因为它被视为“核心更改”,并且会在升级时被覆盖。它需要您在每次升级之前合并您的更改。
相反,如果您需要这种访问级别,我建议您创建自己的登录模块。
在查看你的问题时,我不认为这是必要的。您可以通过创建和实现外观窗口小部件来实现相同的效果。 Skin小部件允许您以几乎任何您能想到的方式操作UI,因为您可以使用jQuery并注入jQuery插件。
这是一个更加优雅的解决方案,可以扩展,可测试,安全防范升级,并允许您根据需要在多个站点和安装中重复使用它。
小部件和文档的示例可以在以下两个链接中找到:
答案 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!