Jump to content

viter_alex

User
  • Posts

    29
  • Joined

  • Last visited

viter_alex's Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. У меня работает, кроме этого конкретного случая
  2. один к одному. У меня знаний не хватает, чтобы что-то там модифицировать. Решение брал готовое, ссылку на которое дал сам автор на этой странице в комменте от 9 декабря сего года.
  3. Я делаю свой блог на blogger'e. Там публикую коды на VB, VBA, VB.net. Прикрутил возможность копирования кода в буфер обмена. В буфер я копирую так: достаю innerHTML, удаляю из него теги <span> и заменяю <br /> на \r\n. Я об этом спрашивал и спасибо, что помогли. Но возникла проблема, например здесь. Код не копируется, потому что возникает ошибка. Firebug скромен: illegal character http://viteralexdebugging.blogspot.com/2009/12/1-with-application.html Line 0 Dragonfly более разговорчив: Syntax error : line 1 of unknown script : Expected token: ')' 0 Then\r sPath = .SelectedItems(1) & \"\\"\r Else: MsgBox \"Вы не выбрали папку. Запустите Т.е. почему-то текст воспринимается как скрипт. Где, в каком месте это возникает, я не смог отловить. В других случаях всё работает Ну а про < и прочее я спросил потому, что поскольку я беру innerHTML, то там эти символы на обычные не заменены, что меня, конечно, не устраивает. Но это я уже решил простой заменой через регэкспы. Там всего-то таких символов три: &, < и > А вот с этой проблемой никак не справлюсь. Опыта у меня никакого нет, поэтому прошу разъяснять подробнее.
  4. Пробовал. Не то. Ведь эти параметры только для IE
  5. Почему-то не работает горизонтальный скролл в div, хотя overflow выставлен в auto div.hl{ color:#008bff; clear: both; background-color:#374C85; margin: 0px 50px 20px; font-family:'Courier New'; overflow: auto; max-height:500px; white-space:pre; text-indent:0; padding:10px 0px 10px; } Получается так: Chrome: В FF и Opera это выглядит нормально: Ну и естественно, не работает в IE:)
  6. неа, не берёт придётся регэкспами долбить Попутно ещё возник вопрос: а функция, которая автоматически заменит < и прочее на соответствующий литерал, существует?
  7. Мне нужно вывести строку, в которой, в моём случае, может попасться backslash ("\"). Строка формируется программно, поэтому я не знаю есть ли в ней запрещённые символы. Есть ли функция, которая заменит такие символы на правильные escape-последовательности. Как я понимаю, backslash нужно заменить на двойной
  8. Взял и посмотрел. Нашёл всё-таки стиль post, для которого стоял textindent: 10 px, при чём я сам его установил, когда только начинал работу с блогом. Теперь внутри дива отменил и всё стало замечательно.
  9. Нет, не используется. Я даже не знаю, что это такое, хотя, судя по названию, заменяет разрывы строк на <br />. Может гугль использует, когда постит запись блога?
  10. Собственно я проблему уже решил. Но поясню. Вот div: <div><div class="copylink"><a class="copylink" href="#">Копировать код без номеров строк</a></div><div class="hl"> /*здесь размещается текст кода, отформатированный спанами*/</div> </div> Когда мышь проходит над ссылкой класса copylink, то ссылка связывается с флешем, который занимается копированием текста в буфер. При этом текст div'a я достаю такой конструкцией: this.parentNode.nextSibling.textContent и передаю этот текст флешу. Но гугловский движок, переводы строк делает тегом <br />, вследствие чего, textContent представляет собой одну строку. Решил же я это дело так. Беру из div'a innerHTML, удаляю из него все спаны, заменяю <br /> на \r\n, удаляю номера строк из текста кода и уже этот готовы код отдаю флешу. Работает! function getFreebrCodeString(innerHTMLtocopy){ //удаляем теги <span></span> var htmlfree=innerHTMLtocopy.replace(/(<span[^>]*>)(.*?)(<\/span>)/ig, "$2"); //заменяем <br> на \r\n var brfree=htmlfree.replace(/(.*?)(?:<br(?: \/)?>)(.*?)/ig, "$1\r\n$2"); //удаляем номера строк return brfree.replace(/^\s*\d{1,}\s/img, ""); }
  11. Но ведь содержимое я получу, и получаю уже без тегов html-разметку я делаю не вручную, а программой. Выглядит это дело так: <div><div class="codeheader">Преобразование в римскую цифру</div><div class="copylink"><a class="copylink" href="#">Копировать код без номеров строк</a></div><div class="hl"><span class="hl line"> 1 </span><span class="hl kwa">Sub</span> СделатьРимскойЦифрой<span class="hl sym">()</span> <span class="hl line"> 2 </span> <span class="hl kwa">Dim</span> a <span class="hl kwa">As</span> <span class="hl kwb">String</span> <span class="hl line"> 3 </span> <span class="hl kwa">With</span> Selection <span class="hl line"> 4 </span> <span class="hl sym">.</span>MoveLeft Unit<span class="hl sym">:=</span>wdWord<span class="hl sym">,</span> Count<span class="hl sym">:=</span><span class="hl num">1</span><span class="hl sym">,</span> Extend<span class="hl sym">:=</span>wdWord <span class="hl line"> 5 </span> a <span class="hl sym">=</span> <span class="hl kwd">Trim</span><span class="hl sym">(.</span>Text<span class="hl sym">)</span> <span class="hl line"> 6 </span> <span class="hl sym">.</span>Fields<span class="hl sym">.</span>Add Range<span class="hl sym">:=</span>Selection<span class="hl sym">.</span>Range<span class="hl sym">,</span> <span class="hl kwa">Type</span><span class="hl sym">:=</span>wdFieldEmpty<span class="hl sym">,</span> _ <span class="hl line"> 7 </span> divserveFormatting<span class="hl sym">:=</span><span class="hl kwa">False</span><span class="hl sym">,</span> Text<span class="hl sym">:=</span><span class="hl str">"= "</span> <span class="hl sym">+</span> a <span class="hl sym">+</span> <span class="hl str">" \*ROMAN"</span> <span class="hl line"> 8 </span> <span class="hl sym">.</span>MoveLeft Unit<span class="hl sym">:=</span>wdWord<span class="hl sym">,</span> Count<span class="hl sym">:=</span><span class="hl num">1</span><span class="hl sym">,</span> Extend<span class="hl sym">:=</span>wdWord <span class="hl line"> 9 </span> a <span class="hl sym">=</span> <span class="hl kwd">Trim</span><span class="hl sym">(.</span>Text<span class="hl sym">)</span> <span class="hl line"> 10 </span> <span class="hl sym">.</span>TypeText a <span class="hl sym">&</span> <span class="hl str">" "</span> <span class="hl line"> 11 </span> <span class="hl kwa">End With</span> <span class="hl line"> 12 </span><span class="hl kwa">End Sub</span></div> а вот, что получается после вставки: <div><div class="codeheader">Преобразование в римскую цифру</div><div class="copylink"><a class="copylink" href="#">Копировать код без номеров строк</a></div><div class="hl"><span class="hl line"> 1 </span><span class="hl kwa">Sub</span> СделатьРимскойЦифрой<span class="hl sym">()</span><br /><span class="hl line"> 2 </span> <span class="hl kwa">Dim</span> a <span class="hl kwa">As</span> <span class="hl kwb">String</span><br /><span class="hl line"> 3 </span> <span class="hl kwa">With</span> Selection<br /><span class="hl line"> 4 </span> <span class="hl sym">.</span>MoveLeft Unit<span class="hl sym">:=</span>wdWord<span class="hl sym">,</span> Count<span class="hl sym">:=</span><span class="hl num">1</span><span class="hl sym">,</span> Extend<span class="hl sym">:=</span>wdWord<br /><span class="hl line"> 5 </span> a <span class="hl sym">=</span> <span class="hl kwd">Trim</span><span class="hl sym">(.</span>Text<span class="hl sym">)</span><br /><span class="hl line"> 6 </span> <span class="hl sym">.</span>Fields<span class="hl sym">.</span>Add Range<span class="hl sym">:=</span>Selection<span class="hl sym">.</span>Range<span class="hl sym">,</span> <span class="hl kwa">Type</span><span class="hl sym">:=</span>wdFieldEmpty<span class="hl sym">,</span> _<br /><span class="hl line"> 7 </span> divserveFormatting<span class="hl sym">:=</span><span class="hl kwa">False</span><span class="hl sym">,</span> Text<span class="hl sym">:=</span><span class="hl str">"= "</span> <span class="hl sym">+</span> a <span class="hl sym">+</span> <span class="hl str">" \*ROMAN"</span><br /><span class="hl line"> 8 </span> <span class="hl sym">.</span>MoveLeft Unit<span class="hl sym">:=</span>wdWord<span class="hl sym">,</span> Count<span class="hl sym">:=</span><span class="hl num">1</span><span class="hl sym">,</span> Extend<span class="hl sym">:=</span>wdWord<br /><span class="hl line"> 9 </span> a <span class="hl sym">=</span> <span class="hl kwd">Trim</span><span class="hl sym">(.</span>Text<span class="hl sym">)</span><br /><span class="hl line"> 10 </span> <span class="hl sym">.</span>TypeText a <span class="hl sym">&</span> <span class="hl str">" "</span><br /><span class="hl line"> 11 </span> <span class="hl kwa">End With</span><br /><span class="hl line"> 12 </span><span class="hl kwa">End Sub</span><br /></div></div> получаю я содержимое div класса "hl"
  12. Дело не в тегах. Я спокойно получаю текст через textContent. Как быть с новыми строками?
  13. При создании поста в этом блоге многострочный текст в коде программ разбивается на строки тегом <br />, но если мне нужно текст кода скопировать (через свойство textContent соответствующего div'а), то получаю одну строку, т.е. тег <br /> просто удаляется. Как быть? Можно, конечно, регэкспами определять, где там может быть перевод строки и вставлять, но это просто жуть. Можно ли как-то эти теги <br /> заменить или удалить?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy