javascript 操作 textarea
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 操作 textarea相关的知识,希望对你有一定的参考价值。
有多个按钮,按钮中的值是固定的,点击不同的按钮要在textarea中的不同位置输入,也就是焦点的位置。 在线等待。。 谢谢啦。
coolwolf79 可能理解错啦,不是焦点的问题,是在textarea标签中的不同位置输入,而你的是在不同文本框中获得焦点,我想实现的是点击不同的按钮可以在textarea中输入不同的值,就是在焦点的位置输入
var setCursorPos = function( el, pos )
if( el.createTextRange )
var rng = el.createTextRange(); //新建textRange对象
rng.moveStart( 'character', pos ); //更改rng对象的开始位置
rng.collapse( true ); //光标移动到范围结尾
rng.select();//选中
el.focus();
else if( el.setSelectionRange )
el.focus(); //先聚焦
el.setSelectionRange( pos , pos ); //设光标
以上是设置光标位置的函数, 要在光标位置插入文字用以下函数
function insertAtCursor(textarea, text)
if (!textarea || !text)
return;
if (document.selection)
//IE
textarea.focus();
sel = document.selection.createRange();
sel.text = text;
else if (textarea.selectionStart || textarea.selectionStart == '0')
//Mozilla/Firefox
textarea.focus();
var startPos = textarea.selectionStart;
var endPos = textarea.selectionEnd;
textarea.value = textarea.value.substring(0, startPos) + text + textarea.value.substring(endPos, textarea.value.length);
textarea.setSelectionRange(endPos+text.length, endPos+text.length);
else
textarea.value += text;
用法
var el= document.getElementById('text1');
insertAtCursor(el, 'test');本回答被提问者采纳 参考技术B 写个简单的,原理相同:
<html>
<head><title></title>
<script type = "text/javascript">
function setFocus(id)
document.getElementById(id).focus();
</script>
</head>
<body>
<input type = "button" value = "button1" onclick = "setFocus('button1')">
<input type = "button" value = "button2" onclick = "setFocus('button2')">
<input type = "button" value = "button3" onclick = "setFocus('button3')">
<input type = "button" value = "button4" onclick = "setFocus('button4')">
<input type = "button" value = "button5" onclick = "setFocus('button5')">
<br/>
<input type = "text" id = "button1">
<input type = "text" id = "button2">
<input type = "text" id = "button3">
<input type = "text" id = "button4">
<input type = "text" id = "button5">
</body>
</html> 参考技术C 你是要写一个什么??编辑器吗?那可不是用textarea写的..
selenium 操作文本框(textarea输入)
selenium 对文本框的输入操作一般有两种形式,传统的是直接通过定位元素通过sendKeys()方法直接在文本框中输入信息。但有时候我们可以通过id 的方式将其进行定位,但却不能通过sendKeys()向文本框中输入文本信息。
这种情况下,也需要借助JavaScript 代码完成输入。
HTML代码
<textarea id="id" style="width: 98%" cols="50" rows="5" class="txtarea"> </textarea> ... ...
第一种:
driver.findElement(By.id("id")).sendKeys("需要输入的内容");
1 public static void main(String[] args) throws InterruptedException { 2 System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe"); 3 ChromeOptions Options = new ChromeOptions(); 4 Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data"); 5 WebDriver driver = new ChromeDriver(Options); 6 driver.manage().window().maximize(); 7 try { 8 driver.get("file:///C:/Users/happy/Desktop/NewFile.html"); 9 driver.findElement(By.id("id")).sendKeys("需要输入的内容"); 10 } finally { 11 Thread.sleep(5000); 12 driver.close(); 13 driver.quit(); 14 } 15 }
第二种:
通过executeScript()执行JavaScript 代码。来实现文本框操作。
1 public static void main(String[] args) throws InterruptedException { 2 System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe"); 3 ChromeOptions Options = new ChromeOptions(); 4 Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data"); 5 WebDriver driver = new ChromeDriver(Options); 6 driver.manage().window().maximize(); 7 try { 8 driver.get("file:///C:/Users/happy/Desktop/NewFile.html"); 9 String text = "input text"; 10 String js = "var sum=document.getElementById(‘id‘); sum.value=‘" + text + "‘;"; 11 ((JavascriptExecutor)driver).executeScript(js); 12 } finally { 13 Thread.sleep(5000); 14 driver.close(); 15 driver.quit(); 16 } 17 }
以上是关于javascript 操作 textarea的主要内容,如果未能解决你的问题,请参考以下文章