0

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

我已经对此进行了很多搜索。我正在考虑制作一个新的登录模块,但我不确定这如何或是否能让我解决问题。

有什么建议吗?

DNN 版本:6.1.3

4

3 回答 3

1

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

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

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

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

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

DNN Widget Suite Project Skin Widget Wiki 文章,包含许多链接资源

于 2012-04-28T06:36:48.183 回答
0

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

免责声明 - 我隶属于 DNNspot。

于 2012-05-01T05:49:52.017 回答
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 站点中会有所不同,但尽管如此你可以检查你的。

Obviously you must have jQuery active in your DNN installation. :)

That's it. It works great!!

HTH!

于 2014-01-25T12:23:24.213 回答