Здравстуйте, помогите понять, что в функции не так, и как её можно исправить. Если в кратце, то есть текст на странице, кликнув на него правой кнопкой, открывается меню, в нем есть пару пунктов и 1 из них, это кнопка copy, при нажатии на которую текст из span'а копируется в буфер обмена. Копирование не проходит и выдает ошибку:
Цитата:
Uncaught TypeError: Object #<HTMLTextAreaElement> has no method 'createTextRange'
Тест html кнопки:
JS:
CODE ( javascript):
скопировать код в буфер обмена
function OpenMenu(evt){ evt = evt || window.event; evt.cancelBubble = true; // Показываем собственное контекстное меню var menu = document.getElementById("oMenu"); var html = ""; login=(evt.target || evt.srcElement).innerHTML; window.event.returnValue=false; var i1, i2; if ((i1 = login.indexOf('['))>=0 && (i2 = login.indexOf(']'))>0) login=login.substring(i1+1, i2); var login2 = login; html = '<a href="javascript:void(0)" class="menuItem" onclick="window.open(\'inf.php\')"; cMenu();">INFO</a>'+ '<TEXTAREA ID="holdtext" STYLE="display:none;"></TEXTAREA><A class=menuItem HREF="javascript:ClipBoard(\''+login+'\');cMenu()">COPY</A>'; // Если есть что показать - показываем if (html){ menu.innerHTML = html; menu.style.top = defPosition(evt).y + "px"; menu.style.left = defPosition(evt).x + "px"; menu.style.display = ""; } // Блокируем всплывание стандартного браузерного меню return false; } function ClipBoard(text){ holdtext.innerText = text; var Copied = holdtext.createTextRange(); Copied.execCommand("RemoveFormat"); Copied.execCommand("Copy"); }
Заранее спасибо.
P.S. делается все под хромом...(Отредактировано автором: 25 Июня, 2013 - 16:15:38)
|