Jump to content

viter_alex

User
  • Posts

    29
  • Joined

  • Last visited

Everything posted by viter_alex

  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 /> заменить или удалить?
  14. пишет единичку, т.е., как я понял, ELEMENT_NODE. И для nextSibling и для parentNode Дело в свойстве textContent, потому что я innerHTML работает. Как текст получить?
  15. Действительно. Только я не убрал их, а пересохранил файл в UTF-8. В жизни бы не подумал, что дело в комментариях! Я подумал, что каждый может открыть и посмотреть. Зачем же я ссылки даю? Так, с этим разобрались. Спасибо. А не подскажите, почему первая строка в кодовом блоке смещена? И ещё. Когда мышка проходит над ссылкой «Копировать код без номеров строк», то я скриптом получаю текст кода: this.parentNode.nextSibling.textContent.replace(/^\s*\d{1,}\s/img, "") И опять IE пишет, что объект null. Подозреваю,что это связано с его пониманием DOM, но как исправить не знаю. this, в данном случае, это ссылка, parentNode даёт мне div, в котором она лежит, а nextSibling — div с текстом кода. Как это описать для IE?
  16. У меня стиль не h1 (один), а hl (эйч-эль), он никакого отношения к заголовкам не имеет
  17. Я делаю оформление для своего блога. В разделе <head> указал внешний файл стилей: <link href='http://viter-alex.narod.ru/Scripts/copycode/styles.css' rel='stylesheet' type='text/css'/> Отображается нормально в Opera 10.10, Chrome 3.0.195.38, FF 3.5.5. Но в IE7 всё оформление пропадает: почему-то не видит стиль div.hl и некоторые другие. Может я в файле css что-то не так указал? Да, чуть не забыл, те же самые стили, но вложенные, распознаются отлично, например здесь
  18. Код оформляю не я, а программа. Она делает все через span. Как-то можно это обойти? В смысле не в программе, а стилями?
  19. Есть такое описание стиля: .hl.line{ color:#888888; border-right: 1px solid white; padding:1px; margin-right:5px; } Нужен он для форматирования номеров строк на этой странице Мне нужна сплошная линия, которая отделяет номера от кода, а получается пунктирная. Что изменить, чтобы не было этого разрыва между строками. Весь код помещен в div
  20. Ну, ты — шаман. Спасибо. Нашел. Будем пробовать. Попробовал вариант отсюда. В Опере работает, не копирует, но скрипт выводит сообщение. что работа с буфером не поддерживается. А IE — не работает, хотя написано, что только в нем и будет работать. Такой вот нонсенс. В связи с этими проблемами еще один вопрос народился: сохранить в файл текст <div> можно?
  21. Не знаю, надо пробовать. Давай линк.
  22. Не знаешь ответ, зачем постить? Сформулируй грамотный запрос к Google, а я поищу по нему . Тут просто слишком много тем для меня нужно задействовать: и JS. и CSS и все это как-то связать. Это сложно для меня. Но сделать хочется!
  23. У меня есть блок, ограниченный тегом <DIV> с определенным классом. Можно ли создать кнопку, которая бы копировала текст внутри этого блока в буфер? Желательно готовый код, или ссылку где его взять. Не сочтите за наглость.
×
×
  • 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