1. JavaScript / Говнокод #8492

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    function get_selection()
    {
    	selection = "";
    	if (document.getSelection)
    	{
    		selection = document.getSelection();
    		selection = selection.replace(/\r\n\r\n/gi, "_doublecaret_");
    		selection = selection.replace(/\r\n/gi, " ");
    		while(selection.indexOf("  ") != -1)
    		selection = selection.replace(/  /gi, "");
    		selection = selection.replace(/_doublecaret_/gi, "\r\n\r\n");
    	}
    	else
    	if (document.selection) { selection = document.selection.createRange().text; }
    	return selection;
    }

    Запостил: bugmenot, 11 Ноября 2011

    Комментарии (5) RSS

    • это из "нашёл ошибку - жми Ctrl+Enter"?
      Ответить
      • неа, это из "хочешь процитировать выделенное - хуй тебе, знаем только про IE"
        пляски с реплейсами фееричны
        Ответить
        • слышится тихое авторское /gi/gi
          Ответить
        • Почему только про IE? Ещё про ФФ и Оперу - именно у них когда просишь selection получаешь string. Вообще, работа с выделением во всех браузерах - самая несовместимая страшная жопа. Хуже только rich text editor'ы.
          Ответить
          • getSelection( ) NN 4 IE n/a DOM n/a

            In Navigator 4, this method captures the current text selection in the document. The method is deprecated in Netscape 6 in favor of the window.getSelection( ) method (which returns a sophisticated selection object, rather than just text). Invoking from the document object displays a warning in the JavaScript Console window, but does not throw a full-fledged exception. The IE equivalent is reading the selection property.

            Parameters
            None.

            Returned Value
            String.
            Ответить

    Добавить комментарий