Вставка содержимого буфера обмена в компонент веб-браузера - PullRequest
1 голос
/ 01 апреля 2012

Я написал небольшое приложение, которое будет следить за буфером обмена и вставлять текст непосредственно в компонент веб-браузера.

...
DocumentWysiwyg = ClipBoardWebBrowser.Document.DomDocument as IHTMLDocument2;
DocumentWysiwyg.designMode = "On";
...

и при изменении буфера обмена я вставляю содержимое буфера обмена в веб-браузер, используя:

ClipBoardWebBrowser.Document.Write(Clipboard.GetText(TextDataFormat.Html));

Теперь, когда я вставляю любой скопированный контент из Интернета как HTML, я получаю внутри HTML

span class="Apple-converted-space">Â </span

, который не относится к HTML, скопированному с веб-сайта.

что это? и как я могу избавиться от них? любая помощь очень ценится.

вот HTML-код для google.de в качестве примера http://pastie.org/pastes/3706386/text

как мне убедиться, что вставленный буфер обмена точно такой же, как скопированные данные в буфер обмена?

1 Ответ

0 голосов
/ 04 января 2013

На Mac несколько вхождений обычного пробела "" преобразуются таким образом, что они заменяют все остальные обычные пробелы символом неразрывного пробела, иначе это позволяет пробелам все еще разрываться на каждом другом символе, но при этом сохраняются такие диапазоны пробелов.

Причина этого в том, что без этого трюка HTML сжимал бы несколько пробелов в один.Наличие только символов приведет к отключению переноса строк, потому что, как указано в их имени, они будут неразрывными.

В дополнение к «Apple-convert-space» был также «Apple-style-span», но это было исключеноот Webkit в 2011 году: https://www.webkit.org/blog/1737/apple-style-span-is-gone/

Итак, чтобы ответить на ваш вопрос: поскольку Webkit заполняет картон, вы ничего не можете сделать, чтобы предотвратить такое поведение.

...