Сценарий № - Как получить доступ к информации таблицы стилей документа? - PullRequest
0 голосов
/ 29 февраля 2012

В Javascript я могу получить доступ к информации таблицы стилей страницы с помощью следующей команды

Пример: document.styleSheets.length

Однако в Script # я не могу сделать один и тот же вызов (или аналогично)), т. е. в Document нет свойства таблицы стилей.

В: Как получить доступ к информации таблицы стилей документа в Script Sharp?

Заранее спасибо

  • Рори

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Я бы не использовал Script.Literal. Вы получите кучу не поддерживаемого кода. Весь смысл того, что вы, скорее всего, используете Script #, - это строгая типизация и упрощение рефакторинга и сопровождения кода. Ввод магических строк в Script.Literal идет вразрез с нашим принципом, облегчающим поддержку кода. Если что-то не поддерживается в встроенных библиотеках script #, то, как другие предложили, вы можете перейти на github. У вас также есть возможность просто расширить существующий класс или создать собственный.

В вашем случае просто создайте пару новых классов Script #. Ключ заключается в использовании атрибута Imported.

[Imported]//keeps us from defining a javascript class in our emitted js library.
[ScriptName("document")]
public static class Html5Document
{

    public static StyleSheet[] StyleSheets//becomes styleSheets when emitted.
    {
        get 
        {
            return null;
        }
        set
        {
        }
    }
}

[Imported]
public static class StyleSheet
{

   //Add whatever property and methods you will need.
}

Теперь в вашем коде # кода вы можете написать:

Html5Document.StyleSheets.Length();//c#

Ваш отправленный код JavaScript будет.

document.styleSheets.length;//javascript
0 голосов
/ 29 февраля 2012

Вы имеете в виду, что вы не видите StyleSheets в списке intellisense после того, как вы напечатаете «Document». ? Это не значит, что вы не можете заставить его работать, так как Script # только для того, чтобы испускать JavaScript.

Если вы не хотите сами добавлять его в Script # (на gitHub), вам, вероятно, потребуется добавить скрипт с помощью Script.Literal.

...