Пользовательская обработка страниц / тегов в ASP.Net - PullRequest
0 голосов
/ 02 августа 2010

Может ли кто-нибудь рассказать мне, как можно реализовать собственные настраиваемые теги на страницах JS, обслуживаемых ASP.NET?

По сути, я хочу добиться способа создания «включений» длямои файлы Javascript, добавив некоторый код, например.

//Include Src="MyJavascriptFileLocation.JS"

, а затем обработчик ASP.Net обслуживает мой файл javascript, но также динамически добавляет указанный файл javascript в место, где написано включение.

Может ли кто-нибудь направить меня в том направлении, в котором я должен идти, чтобы выполнить это?

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Это можно сделать, включив имя файла Javascript в комментарий HTML, а затем перегрузив метод Render объекта System.Web.UI.Page, чтобы найти эти комментарии и заменить их текстом из файлов JavaScript. .

В вашей разметке:

<!-- Include Src="MyJavascriptFileLocation.JS" -->

В вашем коде C #:

        protected override void Render(System.Web.UI.HtmlTextWriter writer)

        {

            // First, grab the HTML that would have been sent

            System.IO.StringWriter stringWriter = new System.IO.StringWriter();

            HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);

            base.Render(htmlWriter);

            string html = stringWriter.ToString();



            // Look for comment
            int start = html.IndexOf("<!-- Include");



            // If found...

            if (start >= 0)

            {

                             // Code here to replace comment with JavaScript file
            }

            // Output our refactored HTML

            writer.Write(html);
       }

Если вам нужно более одного файла JavaScript на страницу, вы можете использовать цикл while и повторять поиск и замену, пока не найдете их все.

Я не уверен, что это лучшее, что можно сделать. Динамическое добавление в JavaScript действительно мешало бы кешированию и тому подобному. Вы минимизируете количество запросов, которые клиент должен сделать, хотя.

Я оставлю это вам, если то, о чем вы просите, имеет смысл и просто ответит на вопрос. Вы знаете гораздо больше о том, чего пытаетесь достичь, чем я.

0 голосов
/ 02 августа 2010

Я только что понял, что вы можете спросить, как включить файл JavaScript в другой файл JavaScript. В этом случае ваш вопрос не является специфическим для .NET, так как JavaScript анализируется и выполняется на клиенте (в браузере).

Если это то, что вы хотите, вот ссылка, которая говорит об этом:

http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...