我想创建一个模块,基本上在dotnetnuke网站的每个页面都包含javascript。我可以在当前页面中包含一个js文件。
ClientResourceManager.RegisterScript(this.Page,
"~/DesktopModules/AuthenticationServices/ZapperScanToLogin/view.js",
FileOrder.Js.jQuery);
但我真正想做的是在主页上安装我的模块,并将javascript包含在dnn网站的每个页面上。这可能吗,我该怎么做?
老实说,我可以通过修改皮肤来实现这个功能,但以下是使用模块的步骤。
我会把这个添加到你的皮肤中,要么只是手动添加引用,要么通过创建一个SkinObject而不是模块。
如果你把它当做一个模块来做,那么用户有可能会从页面上删除这个模块,或者其他一些事情。
你的模块应该有一个页面模板,你可以编辑它,并将jQuery脚本引用插入到页眉中(介于 <head>
tags)。 这将在模块的每个页面上加载。
这里有几个参考文献,可能会有帮助。http:/wnsinj.codeplex.comhttp:/www.dnnsoftware.comcommunity-blogcid135141DotNetNuke-Tips-and-Tricks-11-Using-jQuery-in-DotNetNuke
我最后做的是在jsdebugdnn.modalpopup.js文件中加入一个javascript注册,然后在登录和注册页面以及弹出对话框中注册我的javascript。
var myView = document.createElement("script");
myView.type = "text/javascript";
myView.src = "/js/view.js";
var myTech = document.createElement("script");
myTech.type = "text/javascript";
myTech.src = "/js/mytech.js";
document.head.appendChild(myView);
document.head.appendChild(myTech);
我不知道把javascript文件放在那个位置是否理想,但这是对我有效的解决方案。我认为每个DNN站点的手动开发工作将是最小的,所以我希望这是一个可以接受的解决方案。
我不知道应该把脚本放在页头,还是放在正文......javascript的加载顺序什么的对我来说是个谜。
一种方法是在网站设置下,添加到网站的头部。以超级用户的身份登录。
下面的例子。不显示在页面底部,显示在页眉顶部,但会出现在每个页面上。
<script type="text/javascript" src="/Portals/0/Your-js-here.js"></script>