我希望让用户单击一个链接,然后在另一个元素(不是输入)中选择HTML文本.
通过"选择",我的意思与通过将鼠标拖过它来选择文本的方式相同.这是一个研究的熊,因为每个人都在谈论其他术语中的"选择"或"突出".
这可能吗?我的代码到目前为止:
HTML:
<a href="javascript:" onclick="SelectText('xhtml-code')">Select Code</a>
<code id="xhtml-code">Some Code here </code>
Run Code Online (Sandbox Code Playgroud)
JS:
function SelectText(element) {
$("#" + element).select();
}
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗?
我想在用户单击textarea时选择textarea中的所有文本.我试过了onclick="this.focus()",但这没有做任何事情.我试过了onclick="this.highlight()",但这引起了一个错误.我该怎么办?
我无法理解为什么当textarea获得焦点时我无法获得textarea的内容.
请访问这里的实例:http://jsfiddle.net/mikkelbreum/aSvst/1
使用jQuery,这是我的代码.(在SAFARI中)它使得在单击事件的情况下选择文本,而不是焦点事件:
$('textarea.automarkup')
.mouseup(function(e){
// fixes safari/chrome problem
e.preventDefault();
})
.focus(function(e){
$(this).select();
})
.click(function(e){
$(this).select();
});
Run Code Online (Sandbox Code Playgroud) 我有一个TEXTAREA控件(ID ="taCode"),maxlength = 400,预先填充400个空格.
在将文本输入textarea时,我使用Javascript强制插入模式(替换):
var input = document.getElementById("taCode");
input.addEventListener('keypress', function(){
var s = this.selectionStart;
var e = this.selectionEnd;
this.value = this.value.substr(0, s) + this.value.substr(e + 1);
if (this.value.length < 399)
{
this.value += new Array(399-this.value.length).join(' ');
}
this.selectionEnd = this.selectionStart = s;
}, false);
Run Code Online (Sandbox Code Playgroud)
HTML:
<TEXTAREA ID="taCode" COLS="80" ROWS="5" MAXLENGTH="400" style="overflow:hidden"> </TEXTAREA>
Run Code Online (Sandbox Code Playgroud)
使用桌面和鼠标一切正常,但尝试使用移动设备(Iphone)将光标放在TEXTAREA内失败(编辑:将光标置于第一行有时会工作)并且没有任何内容可以输入到字段中,除了第一个线.想知道如何让它适用于所有线路的手机吗?
我不能直接复制生成的链接(没有ctrl + C)我是usign document.execCommand('copy')但它似乎没有效果.
如果代码没有AJAX那么它的工作就完美了.这是
HTML:
<div class="permalink-control"> </div>
Run Code Online (Sandbox Code Playgroud)
JQUERY:
$(".permalink-control")
.append(
'<div class="input-group">' +
' <span class="input-group-btn"><button type="button" class="btn btn-default" title="Get Permalink"><span class="glyphicon glyphicon-link"></span></button></span>' +
' <input type="text" class="form-control">' +
'</div>'
);
$(".permalink-control input")
.hide()
.focus(function () {
// Workaround for broken selection: https://stackoverflow.com/questions/5797539
var $this = $(this);
$this.select()
.mouseup(function () {
$this.unbind("mouseup");
return false;
});
});
$(".permalink-control button")
.click(function () {
var $this = $(this);
$.ajax({
url: "https://api-ssl.bitly.com/shorten",
dataType: "jsonp",
data: { …Run Code Online (Sandbox Code Playgroud) 我在Stack Overflow上发现了这个问题,并使用了顶部答案中给出的代码。
否则,它的工作非常好,但有一个缺点。在我的页面上,我有多个文本区域。实际上,我使用的选择器仅为"textarea"。
但是,当从一个文本区域“制表”到另一文本区域(使用Tab键跳到下一个文本区域)时,显然不会触发焦点事件,并且文本也不会被选中。
如何修改该代码以通过单击和按Tab起作用?
JSFiddle在这里;http://jsfiddle.net/qQDbZ/ 我在Chrome上,并且在单击textarea时确实选择了全部,但制表键却没有。