如题:曾经遇到过 需要进入某个页面默认选中 xxx 文本中的文字,当时 时间不够没去找。
最近有时间了,所以查了下选中所有文本可以直接用以下完成,并且测试过IE7 8 9 10以及opera、firefox、360安全浏览器、搜狗浏览器以及360极速多可以
<code>
document.getElementsByName("select")[0].focus();
document.getElementsByName("select")[0].select();
</code>
后来想着如何获取浏览器下,已选中的文本
出现了各种问题,代码如下:
<code>
/**
* 获取浏览器中 选中的文本内容
* @param id
* @returns
*/
function getMySelection(id) {
//获取浏览器信息
var ie = isIE();
var myArea = document.getElementById(id);
var selection;
if (!ie) {if (myArea && myArea.selectionStart != undefined) {
// 适合于input 等拥有value属性的元素
selection = myArea.value.substr(myArea.selectionStart,myArea.selectionEnd - myArea.selectionStart);
myArea.selectionStart = 0;
myArea.selectionEnd = 0;
} else if (window.getSelection) {
// 适合于 一般的没有value属性的元素 如:div等
selection = window.getSelection();
} else if (document.getSelection) {
// 适合于 一般的没有value属性的元素 如:div等
selection = document.getSelection();
}
} else {
// IE下获取选中内容
// getSelection 不适用于没有value 属性的元素选中内容
// selection.createRange().text 适用于几乎所有元素的形式(尚未全部证明 )
//alert(myArea.selection);
//alert(myArea.getSelection);
//alert(myArea.selection.createTextRange().text);
//if(myArea.selection){
//selection = myArea.selection.createRange().text;
//}
if (document.selection) {
selection = document.selection.createRange().text;
}
}if(selection != undefined){
return selection;
}else{
return "";
}
}
</code>
问题是:
1.传入的id 是文本域时在非IE下,可以获得该文本域的选中的文本,即使选中的是非文本域的文本也不会在return中返回
2.传入的id是非文本域在非IE下,可以获得该非文本域下选中的文本,即使选中的是文本域的文本也不会在return中返回
3.传入的id 是文本域时在IE下,可以获得该文本域的选中的文本,但是选中的是非文本域的文本会在return中返回
4.传入的id是非文本域在IE下,可以获得该非文本域下选中的文本,但是选中的是文本域的文本也会在return中返回
那位 大虾知道 怎么做能让 在传入id后获得只能是该id下的文本 否则返回空。
还有 小弟js 写的不多 刚开始 有什么问题 就直接提出来 我可以改
最近有时间了,所以查了下选中所有文本可以直接用以下完成,并且测试过IE7 8 9 10以及opera、firefox、360安全浏览器、搜狗浏览器以及360极速多可以
<code>
document.getElementsByName("select")[0].focus();
document.getElementsByName("select")[0].select();
</code>
后来想着如何获取浏览器下,已选中的文本
出现了各种问题,代码如下:
<code>
/**
* 获取浏览器中 选中的文本内容
* @param id
* @returns
*/
function getMySelection(id) {
//获取浏览器信息
var ie = isIE();
var myArea = document.getElementById(id);
var selection;
if (!ie) {if (myArea && myArea.selectionStart != undefined) {
// 适合于input 等拥有value属性的元素
selection = myArea.value.substr(myArea.selectionStart,myArea.selectionEnd - myArea.selectionStart);
myArea.selectionStart = 0;
myArea.selectionEnd = 0;
} else if (window.getSelection) {
// 适合于 一般的没有value属性的元素 如:div等
selection = window.getSelection();
} else if (document.getSelection) {
// 适合于 一般的没有value属性的元素 如:div等
selection = document.getSelection();
}
} else {
// IE下获取选中内容
// getSelection 不适用于没有value 属性的元素选中内容
// selection.createRange().text 适用于几乎所有元素的形式(尚未全部证明 )
//alert(myArea.selection);
//alert(myArea.getSelection);
//alert(myArea.selection.createTextRange().text);
//if(myArea.selection){
//selection = myArea.selection.createRange().text;
//}
if (document.selection) {
selection = document.selection.createRange().text;
}
}if(selection != undefined){
return selection;
}else{
return "";
}
}
</code>
问题是:
1.传入的id 是文本域时在非IE下,可以获得该文本域的选中的文本,即使选中的是非文本域的文本也不会在return中返回
2.传入的id是非文本域在非IE下,可以获得该非文本域下选中的文本,即使选中的是文本域的文本也不会在return中返回
3.传入的id 是文本域时在IE下,可以获得该文本域的选中的文本,但是选中的是非文本域的文本会在return中返回
4.传入的id是非文本域在IE下,可以获得该非文本域下选中的文本,但是选中的是文本域的文本也会在return中返回
那位 大虾知道 怎么做能让 在传入id后获得只能是该id下的文本 否则返回空。
还有 小弟js 写的不多 刚开始 有什么问题 就直接提出来 我可以改