Как я могу считать текстовые строки в элементе DOM? Могу я?

Можно открыть новый временный сеанс, включающий режим SQL CMD в SSMS, через меню -> Запрос -> Режим SQL CMD:

:CONNECT (local)
SET NOCOUNT ON;
SELECT        SERVERPROPERTY('ServerName') AS ServerName
                ,SERVERPROPERTY('ProductVersion') AS ProductVersion
                ,SERVERPROPERTY('ProductLevel') AS ProductLevel
                ,SERVERPROPERTY('Edition') AS Edition
                ,SERVERPROPERTY('EngineEdition') AS EngineEdition;
GO
:CONNECT SQLServer1
SET NOCOUNT ON;
SELECT        SERVERPROPERTY('ServerName') AS ServerName
                ,SERVERPROPERTY('ProductVersion') AS ProductVersion
                ,SERVERPROPERTY('ProductLevel') AS ProductLevel
                ,SERVERPROPERTY('Edition') AS Edition
                ,SERVERPROPERTY('EngineEdition') AS EngineEdition
GO

Таким образом, вы можете переключать контекст. Однако до сих пор нет способа инициировать несколько параллельных исходящих сеансов из одного и того же исходного сеанса с использованием T-SQL. Вы можете сделать это с помощью внешних инструментов

111
задан buti-oxa 23 April 2009 в 22:58
поделиться

5 ответов

Я убежден, что сейчас это невозможно. Это было, однако.

Реализация getClientRects в IE7 сделала именно то, что я хочу. Откройте эту страницу в IE8, попробуйте обновить ее, изменяя ширину окна, и посмотрите, как соответствующим образом изменяется количество строк в первом элементе. Вот ключевые строки javascript с этой страницы:

var rects = elementList[i].getClientRects();
var p = document.createElement('p');
p.appendChild(document.createTextNode('\'' + elementList[i].tagName + '\' element has ' + rects.length + ' line(s).'));

К сожалению для меня, Firefox всегда возвращает один клиентский прямоугольник на элемент, а IE8 делает то же самое сейчас. (Страница Мартина Хоннена работает сегодня, потому что IE отображает ее в виде сравнения IE; нажмите F12 в IE8, чтобы играть в разных режимах.)

Это печально. Похоже, что буквально, но бесполезная реализация спецификации Firefox победила полезную Microsoft. Или я пропускаю ситуацию, когда новые getClientRects могут помочь разработчику?

Похоже, что буквально, но бесполезная реализация спецификации Firefox победила полезную Microsoft. Или я пропускаю ситуацию, когда новые getClientRects могут помочь разработчику?

Похоже, что буквально, но бесполезная реализация спецификации Firefox победила полезную Microsoft. Или я пропускаю ситуацию, когда новые getClientRects могут помочь разработчику?

6
ответ дан 24 November 2019 в 03:05
поделиться

If the div's size is dependent on the content (which I assume to be the case from your description) then you can retrieve the div's height using:

var divHeight = document.getElementById('content').offsetHeight;

And divide by the font line height:

document.getElementById('content').style.lineHeight;

Or to get the line height if it hasn't been explicitly set:

var element = document.getElementById('content');
document.defaultView.getComputedStyle(element, null).getPropertyValue("lineHeight");

You will also need to take padding and inter-line spacing into account.

EDIT

Fully self-contained test, explicitly setting line-height:

function countLines() { var el = document.getElementById('content'); var divHeight = el.offsetHeight var lineHeight = parseInt(el.style.lineHeight); var lines = divHeight / lineHeight; alert("Lines: " + lines); }
 
hello how are you? hello how are you? hello how are you? hello how are you?
76
ответ дан 24 November 2019 в 03:05
поделиться

Нет, ненадежно. Просто слишком много неизвестных переменных

  1. Какая ОС (разные DPI, варианты шрифтов и т. Д.)?
  2. У них размер шрифта увеличен, потому что они практически слепые?
  3. Черт, в webkit браузеры, вы можете изменить размер текстовых полей по своему желанию.

Этот список можно продолжить. Когда-нибудь я надеюсь, что будет такой способ надежного выполнения этого с помощью JavaScript, но пока этот день не наступит, вам не повезло.

Я ненавижу подобные ответы и надеюсь, что кто-то может доказать, что я неправ.

2
ответ дан 24 November 2019 в 03:05
поделиться

Вы должны быть в состоянии разделить ('\ n'). Length и получить разрывы строк. Обновление:

: это работает на FF / Chrome, но не на IE.

<html>
<head>
<script src="jquery-1.3.2.min.js"></script>
<script>
    $(document).ready(function() {
        var arr = $("div").text().split('\n');
        for (var i = 0; i < arr.length; i++)
            $("div").after(i + '=' + arr[i] + '<br/>');
    });
</script>
</head>
<body>
<div>One
Two
Three</div>
</body>
</html>
2
ответ дан 24 November 2019 в 03:05
поделиться

Я начал изучать WPF и быстро наступил на MVVM - казалось, что такая хорошая посадка, которую я застрял с ним. Вероятно, стоит указать, что кажется, что могут быть некоторые различия в том, как люди реализуют MVVM, ключевой, который представляет собой первый вид - сначала или просматривать ModeL-First. Некоторые, кажется, считают это точкой Евангелия - у меня недостаточно опыта, чтобы решить, будет ли оно. Я склонен к просмотру - сначала (поэтому представление имеет ссылку на ViewModel и ViewModel имеет ссылку на модель и ни один в другом направлении), но я столкнулся с сценарием, где другой путь был проще.

Почему бы не разместить несколько вопросов вокруг конкретных моментов, которые вы видите как не лучшая практика. Это может помочь другим борьбам с этой темой.

Еще один вопрос: вы используете определенную основу для MVVM?

-121--2476964-

Одним из растворов - приложить каждое слово в теге «Продолжительность» с помощью скрипта. Тогда, если y измерение данного метка охвата меньше, чем у него непосредственного предшественника, то произошла перерыв линии.

18
ответ дан 24 November 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: