当前位置:编程学习 > C#/ASP.NET >>

100分问求一个关于把JS打包进DLL里,然后调用的完整例子!

我现在做AJAS ,有很多JS,但是我不想让别人轻易地得到里面的代码而是想最终变成

<script src="/newweb/ScriptResource.axd?d=XO5bWtLPhp8e3YzTv4kDyX3y0hUEVt_G_meLPor8YMWRBQ_0C58wu6_BNwjI-hGk6Ozoit2cg1tNYpD64ADnpV9gkLHvL0tVs2XWAobm6301&t=633259125840000000" type="text/javascript"></script>

这样的形式,在网上找了很多文章,都说的不是太详细,我试验了下也不成功,谁能提供一个完整的例子

就是把JS文件以资源的形式嵌入项目中,然后编译出一个DLL来,然后在另外的网站里如何注册这个DLL,然后调用里面的脚本

如果能用VB.NET描述就更好了!

谢谢!!!!! --------------------编程问答-------------------- 建议看看blogengine的实现,其实不难 --------------------编程问答-------------------- 把js脚本全部以ajax形式输出调用就可以了。在客户端查看源文件中是查看不到的,但是可以调用。
就相当于ajax访问的数据一样。 --------------------编程问答-------------------- 我现在做AJAS ,有很多JS,但是我不想让别人轻易地得到里面的代码而是想最终变成
================================================================
有交流才有进步哈,以前看别人的,现在让别人看看又何妨? --------------------编程问答-------------------- 支持开源 --------------------编程问答-------------------- 关注一下...一直都没用过资源文件呢~~MARK一下...现在不是讨论开不开源的问题,而是技术上是否能够实现的问题~ --------------------编程问答-------------------- 有交流才有进步哈,以前看别人的,现在让别人看看又何妨?

说 的 很 对 --------------------编程问答-------------------- 有时候出于商业目的,是不让别人看到的。这应该能够体谅 --------------------编程问答-------------------- 对,这个是个技术实现的问题,顶上去!!! --------------------编程问答-------------------- 可以换个解决方案,比如JS加密 --------------------编程问答-------------------- 好象实现不了,如果以编码方式加密会增加数据量不说,效果也不好~~~ --------------------编程问答-------------------- 项目,右键---属性-----“嵌入资源”
这样就可以打包进去,但是客户端调用时还是出现在客户端的,因为js不是编译性的语言,必须出现在客户端才可以 --------------------编程问答-------------------- 我想要的解决方案是在一个项目中打包JS成DLL
然后在另外一个项目中调用这个DLL里的JS的具体写发和实现 --------------------编程问答-------------------- 没错的,就是放到DLL里面去的,很多网上开源的控件就是这么实现的
最后就会生成axd?。。。。的 --------------------编程问答-------------------- 我要具体实例...!!! --------------------编程问答-------------------- 有空再来做 --------------------编程问答-------------------- 把JS文件设成嵌入资源
右键---属性-----“嵌入资源”

在引用下面添加:
[assembly:System.Web.UI.WebResource("test.js", "text/javascript")]

在PreRender里添加
                this.Page.ClientScript.RegisterClientScriptInclude
                (
                    this.GetType(),
                    "testjs",
                    this.Page.ClientScript.GetWebResourceUrl
                    (
                        this.GetType(), "test.js"
                    )
                ); --------------------编程问答-------------------- 再次看到这个帖子,如16楼说的,是可以把js打入程序集中,当用时再引用,但是这也“但是我不想让别人轻易地得到里面的代码而是想最终变成”,没有多大关系。.axd(ActiveXDocument)的使用必须考虑对OLE的支持,一堆的应用问题在等你,你想想吧~~ --------------------编程问答-------------------- 能想到的就能实现···楼主到处翻翻吧·· --------------------编程问答-------------------- mark --------------------编程问答-------------------- 去www.cnblogs.com搜索一下吧,不只一个人写过怎么做,有具体示例的。

其实你把JavaScript的地址变成那模式,根本没有任何保护意义,稍微专业一点的人都是用浏览器插件(例如Firebug)或者HTTP监听软件,管你地址有多复杂,总之是这个页面引用的js文件,都可以直接点击查看,然后另存。 --------------------编程问答-------------------- 就算加到DLL也没用吧。。。要调用的时候还是会调出来。。。难道你还要加密它?? --------------------编程问答-------------------- 文件 右键属性 嵌入的资源
按照名称空间.文件名 访问 --------------------编程问答-------------------- 恩 关注中…… --------------------编程问答-------------------- 选项把文件设成嵌入式资源(点文件,右键)

然后:
[assembly: WebResource(名称空间.JSResName, "application/javascript")]
namespace 名称空间
{
   
public class xxxx
{
public const string JSResName = "名称空间.放js文件的文件夹.calendar.js";


protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            #region Reg script lable
            string strjs = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), JSResName);
            string strJsLink = string.Format("<script src=\"{0}\" type=\"text/javascript\"></script>", DatePickerPath);

            string jsKey = "xxxjs";
            if (this.Page.Header.FindControl(jsKey) != null)
                return;
            Literal ltljs = new Literal();
            ltljs.ID = jsKey;
            ltljs.Text = strJsLink;
            this.Parent.Page.Header.Controls.Add(ltljs);
            #endregion
        }

}
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,