У меня есть приложение, которое передает любой выбранный основной текст на сервер text-2-voice (через ajax) при нажатии кнопки «Скажи это» в родительском окне;выделенный текст находится в фрейме.
Выбор работает на Firefox 3.6 и IE 8, но не на Safari 5 (не пробовал никаких других; это наш список поддерживаемых браузеров).В Safari всякий раз, когда нажимается кнопка для выполнения функции, любой выбранный текст теряется.
Я пытался добавить это в mouseup для iframe презентации, найденного как решение для потери выбранного текста в элементе управления, но это не работает для выделенного текста в теле документа:
$("#the_presentation").mouseup(function(e){
e.preventDefault();
});
Функция, которая ловит выделенный текст, такова:
function getSelectedText(){
//Grab selected text
var _txt = '';
var _selection = null;
if(window.getSelection){
_txt = window.getSelection().toString();
}
else if(document.getSelection){ //deprecated in ff
_txt = document.getSelection()+'';
}
else if(document.selection){
_selection = document.selection.createRange();
if(_selection != null && _selection.text )
{
_txt = _selection.text;
}
}
return _txt;
}
Спасибо за пониманиемогу предоставить!
* редактировать: я забыл упомянуть, что происходит только на Mac Safari - Windows Safari не имеет проблемы.