25 November 2009

Javascript: Get/Set Caret Cursor position in iframe WYSIWYG editor

I've been working on this for 3 months now on and off, using code snippets from the net and asking questions in forums, etc. I'm trying to get a RTE to autosave as the user is typing. I still don't have a viable solution that works cross browser but I will keep this post updated as I progress. The following works in Firefox:

The idea is that we insert an image as a marker (I use a nice loading symbol in an animated gif). Later or immediately afterwards, we can select the image and remove it, restoring the caret to it's original position. Here's the code:

Please see right hand panel before copying >

//USAGE:
//before the save:
insertAtCursor("myIframe",'<img src="images/marker-autosave.gif" id="caret" />', 0); //change 0 to 1 if you want the user's selection to be replaced by the img

//after the save:
resetCaret("myIframe");


function insertAtCursor(iframename, text, replaceContents) {
      if(replaceContents==null){replaceContents=false;}
      if(!replaceContents){//collapse selection:
         var sel=document.getElementById(iframename).contentWindow.getSelection()
         sel.collapseToStart()
      }
      document.getElementById(iframename).contentWindow.document.execCommand('insertHTML', false, text);
};


function resetCaret(iframename){
      var iframe=document.getElementById(iframename).contentWindow
      var referenceNode = iframe.document.getElementById("caret");
      if(referenceNode){
         var sel=document.getElementById(iframename).contentWindow.getSelection()
         //alert(sel.focusNode)
     
         if(sel.focusNode){//firefox:
  var range=sel.getRangeAt(0);
         }else{//chrome:
  var range=iframe.document.createRange()
         }
      range.selectNode(referenceNode);
      range.deleteContents();
      }
}

210 comments:

«Oldest   ‹Older   201 – 210 of 210
Anonymous said...

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

Anonymous said...

Если хочешь быть на все сто даже на утренней пробке, а не только на мероприятии - то ты обязана попробовать каре боб пикси на ножке! Это прическа, которая даст тебе супер свободу движения! Забудь о тех длинных косах, которые так скрепя сердце рубишь! Каре боб пикси - твой верный спутник. Да, это щекотно, да если нужно вырастить, то прийдется использовать нервы и редкое терпение, но поверь! Ты будешь выглядеть шикарно! Нужна ссылка? Кликай тут! Прости, нет ссылки без пляшки! Спасибо Словосила за лайфхаки на эту тему! Делитесь, дамы!

Anonymous said...

Ой, братан, у меня для тебя босс подборка с открытками и картинками на тему Красивая картинка с именем Аида красивые. Просто порвут все шаблоны, поверь! Есть одна открытка, которая зовется открытка с именем аида до слез, и она просто огонь! В нее настолько вложена душа, что пока глаза ее не увидишь, слезы на глаза навертятся. Чтобы посмотреть эту космическую открытку, кликай сюда: открытка с именем аида до слез. Не откажешься, это хикс, бро!

Anonymous said...

Ё, народ! Короче, мне тут надо подобрать открытку с Днем Рождения для нашей девчонки Маришки. Такая чтобы трогательная, понимаешь. Чтобы она вся стала милой и нежной, как сама Маришка! Я вот нашел отличную подборку открыток, там именно то, что нужно. Внутри есть тексты такие душевные, прям сердечко радуется! Так что, зацени ссылку тут: Открытка с днем рождения Маришка трогательные. Ща давай сюда эту открытку, и Маришка будет просто в восторге от нашего поздравления!

Anonymous said...

Как нарисовать колбасу? Это вопрос, который интересует многих начинающих художников. Не так уж и сложно, как кажется! Сегодня я поделюсь с вами простым способом создать реалистичное изображение колбасы. Вам понадобятся обычные карандаши и немного терпения. Сначала нарисуйте длинную овальную форму — это основа нашей колбасы. Потом добавьте несколько коротких и тонких линий по бокам, чтобы создать эффект текстуры. Не забудьте про тени! Для большей наглядности можете посмотреть примеры на сайте как нарисовать колбасу, чтобы получить дополнительные советы и идеи. Уверен, что ваша колбаса будет выглядеть вкусно и реалистично!

Anonymous said...

I recently visited the adult site and was thrilled to come across the Emily Blunt nude section. The content was top-notch and definitely exceeded my expectations. If you're a fan of Emily Blunt or just enjoy high-quality adult content, I highly recommend checking it out. - Sarah W.

Anonymous said...

Дружище, скажи, ты когда-нибудь пробовал эльфийский макияж? Я вот вчера попробовала, и офигела, как это классно! Выглядела, блин, прямо как настоящая эльфийка! На сайте . я нашла небольшую инструкцию, как его сделать. Там подробно рассказано, как поставить эти магические акценты на глазах и губах. В общем, чекай ссылку и сам взгляни, а потом обязательно поделись впечатлениями со мной!

Anonymous said...

Ща подбирал подарок своему приятелю на 58-й день рождения, и нашел открытки, с которыми вообще бомба! Стильные такие, чтобы вау у народа был, когда увидят! Внутри так же все круто оформлено, с душевными поздравлениями. Что порадовало, что есть такие открытки с днем рождения на 58 лет, чтоб знайца и по круче было. Я и нашел в этом магазине mega cool открытку для своего чувака. Хочешь тож такую купить? Только аккуратнее не задорого тут, хоть и весь народ оценивать будет, что за улетные открытки у тебя! Ну это так, подсказка для тебя если что. Держи ссылку, там смотри, тут норм варианты Открытки с днем рождения на 58 лет стильные.

Anonymous said...

Вот рекомендательный текст: Если ты ценишь старые школьные впечатления и прикольные воспоминания, не пропусти коллекцию Дед мопед. Там куча классных фоток и картинок, которые точно вызовут улыбку на лице! Посмотри и насладись вместе с нами: дед мопед.

Anonymous said...

Эй, дорогуша! Вот тебе один секрет, как порадовать свою маму в День Балтийского моря. Только представь, как она будет в восторге, когда увидит великолепные картинки с бескрайним морем и прибрежными пейзажами! Я сам нашёл качественную подборку таких красот в одном месте. Там аж 210 фотографий, и все именно на тему Дня Балтийского моря! Я вот уже скачал парочку на телефон, чтобы показать маме. Так что, не медли и переходи по этой ссылке картинки с 8 марта маме скачать бесплатно! Теперь дело за тобой, дай маме незабываемый подарок и исполни её мечту о встрече с Балтикой на самом деле!

«Oldest ‹Older   201 – 210 of 210   Newer› Newest»

Post a Comment

Cron Design Studio: Dublin based web design & software development