我有一個應用程序,當單擊父窗口中的「說它」按鈕時,將任何選定正文文本傳遞到文本2語音服務器(通過ajax) ;所選文本位於iframe中。防止Safari在按鈕單擊時丟失正文中的選定文本
該選擇適用於Firefox 3.6和IE 8,但不適用於Safari 5(未嘗試任何其他;這是我們支持的瀏覽器列表)。在Safari中,只要單擊執行該功能的按鈕,任何選定的文本都會丟失。
我嘗試添加這鼠標鬆開用於演示的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沒有問題。
好主意!我不喜歡這樣做,感覺有點像黑客,但它的工作,並沒有打破任何其他行爲......謝謝! – 2010-07-07 22:27:05
很高興我能幫到你。 :) – Adam 2010-07-07 22:32:30
它感覺像一個黑客,因爲它*是*黑客:) – 2010-07-07 23:32:08