2010-01-15 22 views
1

我在我的第一个DotNetNuke的网站工作,并有所有自定义模块功能我开发可用禁用了javascript的要求。回发不点净核弹5.2.1工作时禁用了javascript

然而,当我创建一个包含简单的提交按钮模块,即<input type="submit" />,DotNetNuke的显示与JavaScript的一个严重错误关断如预期的JavaScript上打开工作。

当我使用Visual Studio附加到正在运行的进程时,未处理的异常从admin/Skins/Nav.ascx.vb第177行中抛出。内部异常消息是“无效的JSON原语:。”。

我的研究只在网上成功地打开了这个论坛后(Postbacks are not working when Javascript is disabled in the browser),似乎是同样的问题,像我,但没有提供解决方案。

任何人都可以在这个问题上得到任何解释吗?试图在这个DotNetNuke版本中编写非JavaScript功能是否可行?

更新:事实证明,其他网站通过使用DNN 5.1.4版时,但它我的是有非JavaScript的回发了同样的问题时,公司有斑点网朝核最近设计在DNN版本5.0.1中有问题(即它可以可以回发没有javascript)。

因此,在5.0.1之后的某个时候,可能对javascript的依赖很大。我们正在进一步调查这种可能性,我会随时更新这个问题。显然我仍然欢迎任何人对这个问题的意见。

更新:我已经在Dot Net Nuke论坛上启动了一个线程,以查看我是否可以在那里获得任何帮助。如果有解决方案出现,我会在这里发布。 Trying to find official DNN stance on support for javascript disabled functionality

+0

我知道这不是直接相关的,但是当我在下面的问题上写下自己的想法时,我忍不住想知道为什么你需要首先这样做。如果你不介意分享,我很想知道什么是非常有说服力的支持没有JavaScript的人。 – 2010-01-15 02:24:13

+2

在这种情况下,我相信客户有法律责任为没有JavaScript的用户提供所有功能。 – 2010-01-15 02:45:05

+1

我的2美分要求网站没有JS工作 - 它真的不现实,期望有人在没有JS的情况下冲浪现代网站 - 任何期望网站工作而没有JS的“漂亮”的人都有一些非常过时的想法。我知道可访问性(第508条)guidlines指出,功能必须有一个“可访问的替代方案” - 除非你想做一个更传统的站点作为可选的替代方案(如PHP或传统的ASP),我想你会发现这是关于不可能与DNN – braindice 2010-01-15 18:01:30

回答

2

其中一位办公室的开发人员发现了一种解决方法,可以禁用JavaScript来处理回传。不幸的是,因为他没有Stack Overflow帐户,所以我会尽力将他的解决方案尽可能地转化为有兴趣的人。底线是回复Javascript禁用是可能的一旦你对Dot Net Nuke环境做了一些改动。

步骤1 - 更改菜单模块。在我们的例子中,我们使用了Telerik RadMenu。

<dnn:NAV runat="server" id="dnnNAV" ProviderName="DNNMenuNavigationProvider" IndicateChildren="false" ControlOrientation="Horizontal" CSSControl="mainMenu" /> 

变得

<dnn:RADMENU runat="server" id="dnnRADMENU" MaxLevel="2" EnablePageIcons="False" PagesToExclude="" ShowPath="True" /> 

步骤2 - 取出动作和能见度模块。

<dnn:ACTIONS runat="server" id="dnnACTIONS" ProviderName="DNNMenuNavigationProvider" ExpandDepth="1" PopulateNodesFromClient="True" /> 

<dnn:VISIBILITY runat="server" id="dnnVISIBILITY" minicon="images/DNN-minus.gif" maxicon="images/DNN-plus.gif" /> 

步骤3 - 下载DNN源,并在LibraryUI \工具\ ClientAPI.vb文件中的两个变化。

155行:

DotNetNuke.UI.Utilities.ClientAPI.RegisterClientReference(objButton.Page, DotNetNuke.UI.Utilities.ClientAPI.ClientNamespaceReferences.dnn_dom) 

变得

If Not objButton.Page.IsPostBack Then 
DotNetNuke.UI.Utilities.ClientAPI.RegisterClientReference(objButton.Page, DotNetNuke.UI.Utilities.ClientAPI.ClientNamespaceReferences.dnn_dom) 
End If 

355行:

ClientAPI.GetCallbackEventReference(objPage, "", "", "", "") 

变得

If Not objPage.IsPostBack Then 
ClientAPI.GetCallbackEventReference(objPage, "", "", "", "") 
End If 

第4步 - 编译Dot Net Nuke库。

请注意:另外,请确保您未以管理员或主机身份登录,因为如果您尝试使用JavaScript禁用回发功能,页面顶部的管理员/主机面板也会中断。

希望这可以帮助别人。如果您觉得我错过了一些重要的细节,请告诉我,我会尝试填写需要的内容。

0

DotNetNuke严重依赖于JavaScript,我怀疑是否有真正简单的方法 - 至少考虑到您需要支持所有的功能。也许你可以澄清?

在这里的底线是,你将需要修改DotNetNuke的满足您的需求。实现它的确不是不可能的,但我敢肯定,对大多数人来说,这显然是不值得的。

如果如你所说,你需要在不使用JavaScript来保留所有的功能,你将有工作的一个相当可观的量做。

我建议,上手,你下载的源码包,建立你的本地计算机上的开发环境,关闭JavaScript在浏览器中,并开始做笔记。这将有助于确定所涉及的工作量。

我猜你不会得到很多答复,因为很少有人坐在DotNetNuke的前面,因为这个作为你链接的论坛主题的海报没有。要求。

另外,请记住,任何你正在做的DotNetNuke的框架实质性变化的时候,你与你的将来很容易地进行升级能力的干扰。还有一件事要考虑。

+1

当我说所有功能时,我的意思是我需要编写两个自定义模块,以提供特定于客户需求的功能。该客户端对可访问性非常严格,并要求这两个模块在关闭javascript的情况下提供所有功能。这个功能只是一些基本的数据库交互,但由于我正在努力做回发,它正在引起一场真正的头痛。 – 2010-01-15 02:30:04

0

我相信我已经看到DNN的领导层表示他们已经很强烈地依赖于JavaScript,并且在考虑非JavaScript兼容的情况下没有意图。

这就是说,能够做一个简单的回发不应该太难支持。我会在客户端API区域中查找您描述的错误。很多客户端API代码位于DotNetNuke.WebUtility程序集中,它是从CodePlex单独下载以获取源代码。

+0

我在我的问题中描述了如何通过导航外观最初抛出错误。但是,当我删除导航时,另一个错误发生在我无法跟踪的其他地方(即,在连接到进程时,它不会在代码文件中触发)。 – 2010-01-18 02:20:06