【问题标题】:How To Generate A Javascript File From The Server如何从服务器生成 Javascript 文件
【发布时间】:2010-09-09 05:59:38
【问题描述】:

我正在使用 BlogEngine.NET(一个很好的工具),我正在使用 TinyMCE 编辑器,发现有一个地方可以让我创建一个外部链接列表,但它必须是一个 javascript 文件:

external_link_list_url : "example_link_list.js"

这当然很棒,但是我要使用的链接列表需要从数据库中动态生成。这意味着我需要在页面加载时从服务器创建这个 JS 文件。有谁知道这样做的方法?理想情况下,我只想在每次访问编辑器时覆盖此文件。

谢谢!

【问题讨论】:

    标签: c# asp.net javascript tinymce blogengine.net


    【解决方案1】:

    如果您的第 3 方代码不需要 javascript 文件具有 .js 扩展名,那么您可以创建 HTTPHandler 并将其映射到 web.config 中的 .axd 或 .ashx 扩展名 - 无需更改 IIS设置,因为这些扩展由 IIS 自动配置为由 asp.net 处理。

    <system.web>
      <httpHandlers>
        <add verb="*" path="example_link_list.axd" type= "MyProject.MyTinyMCE, MyAssembly" />
      </httpHandlers>
    </system.web>
    

    这指示 IIS 将“example_link_list.axd”的所有请求(通过 POST 和 GET)传递给 MyAssembly 程序集中的 MyProject.MyTinyMCE 类的 ProcessRequest 方法(您的 .dll 的名称)

    您也可以改用 Visual Studio 的“通用处理程序”模板 - 这将为您创建一个 .ashx 文件和代码隐藏类。也无需编辑 web.config。

    使用 HTTPHandler 比使用 .aspx 页面更可取,因为 .aspx 请求具有更多相关的开销(所有页面事件等)

    【讨论】:

      【解决方案2】:

      只需将它指向一个 aspx 文件,然后让该文件吐出您需要的任何 javascript。我最近在 PHP 中使用 TinyMCE 完成了这项工作,效果非常好。

      external_link_list_url : "example_link_list.aspx"

      在您的 aspx 文件中:

      
      
      

      在您的代码隐藏 (C#) 中:

      使用系统; 公共部分类默认值:System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("var tinyMCELinkList = new Array("); // 将所有链接以正确的格式放在这里.. Response.Write(string.Format("['{0}', '{1}']", "name", "url")); Response.Write(");"); } }

      【讨论】:

        【解决方案3】:

        我会创建一个 HTTPHandler 来响应从数据库中读取的所需数据。只需将 HTTPHandler 与 web-config 中的特定文件名“example_link_list.js”相关联。确保你设置了

        context.Response.ContentType = "text/javascript";
        

        然后只是 context.Response.Write();您的外部链接列表

        【讨论】:

          【解决方案4】:

          如果您不能更改文件扩展名(并且只返回纯文本,调用者不应该关心文件扩展名,js 是纯文本)那么您可以在 IIS 上设置一个处理程序(假设它是 IIS)处理 javascript 文件。

          请参阅此链接 - http://msdn.microsoft.com/en-us/library/bb515343.aspx - 了解如何在 Windows 中设置 IIS 6 以处理任何文件扩展名。然后设置一个 HttpHandler 来接收对 .js 的请求(只需 google httphandler 并查看任何数量的像这样的好教程:http://www.devx.com/dotnet/Article/6962/0/page/3

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多