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();
      }
}

216 comments:

«Oldest   ‹Older   201 – 216 of 216
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 марта маме скачать бесплатно! Теперь дело за тобой, дай маме незабываемый подарок и исполни её мечту о встрече с Балтикой на самом деле!

Anonymous said...

Здесь нашлись просто потрясающие фотографии собак с разным цветом глаз! Вот, например, есть такие, у которых один глаз голубой, а другой карий. Это выглядит просто невероятно мило и удивительно! Если тебя тоже интересует такая уникальная особенность, посмотри больше здесь: собаки с разным цветом глаз.

Anonymous said...

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

Anonymous said...

Мы все любим наблюдать за животными, особенно за такими милыми, как заяц толай. Эти маленькие создания обладают удивительной изящностью и очарованием. Недавно нашла потрясающую подборку фотографий зайцев толай на сайте Фотки Фло. Вот ссылка, если вы тоже хотите полюбоваться: Заяц толай. Обязательно загляните и убедитесь сами, какие они прекрасные и как много радости могут приносить!

Anonymous said...

Проблема с заслонкой EGR на моем VW Passat (2008) была решена быстро и профессионально в АвтоКрасное. Ребята знают свое дело, оперативно удалили и отключили клапан, машина теперь работает как часы. Рекомендую АвтоКрасное всем владельцам VAG! - Никита Иванов

Anonymous said...

Если вы хотите узнать больше о Линдси Шоу и насладиться её яркими фото, то вам точно стоит заглянуть на эту страницу. В коллекции вы найдёте много классных снимков и красивых изображений, которые просто невозможно пропустить. Посмотрите сами, заходите по ссылке линдси шоу и оцените её стиль и очарование!

Anonymous said...

Если ты занимаешься в зале и ищешь эффективное упражнение для развития ног, жим лежа ногами на тренажере идеально подойдет. Это упражнение помогает сосредоточиться на развитии мышц ног, повысить силу и выносливость. Попробуй добавить его в свою тренировочную программу для достижения лучших результатов. Узнай больше о том, как правильно выполнять жим лежа ногами на тренажере здесь, чтобы максимизировать выгоды от этого упражнения.

Anonymous said...

Я вчера нашла такой потрясающий торт с леденцами для мальчика! Просто смотрите на эти фото - он выглядит как настоящее чудо! Мой сын был в восторге, когда увидел его на дне рождения своего друга. Хочу сделать точно такой же на его следующий день рождения. Если вам тоже интересно, как сделать такой торт, вот ссылка на рецепт: торт с леденцами для мальчика. Обязательно загляните туда, чтобы вдохновиться идеями!

Anonymous said...

Очарование и комфорт в каждом шаге – вот что предлагают белые кеды на платформе! Эти стильные и удобные обувные изделия подходят как для повседневных прогулок, так и для активного отдыха. Их легко сочетать с любой одеждой, добавляя образу легкость и яркость. Если вы хотите узнать больше о модных трендах и найти идеальную пару белых кед на платформе, загляните на наш сайт по ссылке: белые кеды на платформе.

Anonymous said...

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

Anonymous said...

Если ты музыкант и хочешь выразить свою любовь к музыке не только звуками, но и на своем теле, то обязательно взгляни на эти крутые татуировки! Они помогут тебе рассказать о своей страсти к музыке через свою внешность. Посмотри подборку на сайте https://ecofoto.ru/tatuirovki/tatu-dlya-muzykantov/ и найди идею для своего нового тату! Музыкальные символы, ноты на руке или гитара на спине – у тебя появятся много крутых вариантов! Поделись этой ссылкой с друзьями-музыкантами, которые тоже хотят выглядеть стильно и оригинально!

Anonymous said...

Прикольные фоны для проекта! Огонь! Куча светлых вариантов, чтобы выбрать на ваших фотках и картинках! Советую заглянуть сюда: https://fonetastik.com/fon-dlya-proekta-svetlyy. Обязательно посмотрите, классные идеи там есть! Рад будешь, да и проект твой заиграет новыми красками!

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

Post a Comment

Cron Design Studio: Dublin based web design & software development