搜索
您的当前位置:首页显示行号的文本输入框_javascript技巧

显示行号的文本输入框_javascript技巧

时间:2023-12-01 来源:明星茬娱乐

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

小编还为您整理了以下内容,可能对您也有帮助:

请问如何通过编程实现文本框左侧的行号

void ShowLineNum( HWND hEdit )

{

/*

功能:显示文本的总行数

参数:

hEdit:要显示行号的文本框,普通的Edit控件没有测试过,这里只用RichEdit

返回值:没有。

--------------------------------------------------------------------------------

*/

RECT ClientRect; //RichEdit的客户区大小

HDC hdcEdit; //RichEdit的Dc(设备环境)

HDC hdcCpb; //与RichEdit兼容的Dc

HBITMAP hdcBmp; //RichEdit兼容的位图dc

int CharHeight; //字符的高度

int chHeight; //字符的高度,常量

int FirstLine; //文本框中的第一个可见行的行号。

int ClientHeight; //RichEdit的客户区高度

int LineCount; //文本的总行数

char countBuf[10]; //显示行号的缓冲区

CHARFORMAT CharFmt; //RichEdit中的一个结构,用于获取字符的一系列信息,这里只用它来获取字符高度

//获取RichEdit的Dc

hdcEdit = GetDC( hEdit );

GetClientRect( hEdit, &ClientRect);

//获取RichEdit的客户区高度

ClientHeight = ClientRect.bottom - ClientRect.top;

//创建与RichEdit兼容的Dc

hdcCpb = CreateCompatibleDC( hdcEdit );

//创建与RichEdit兼容的位图Dc,我们用来显示行号用的。

hdcBmp = CreateCompatibleBitmap( hdcEdit, 40, ClientHeight );

//将位图dc选入RichEdit环境中

SelectObject( hdcCpb, hdcBmp );

//填充显示行号dc的背景颜色。大家可以试试其它颜色

FillRect( hdcCpb, &ClientRect, CreateSolidBrush(0x8080ff) );

SetBkMode( hdcCpb, TRANSPARENT );

//获取当前RichEdit文本中的总行数

LineCount = SendMessage( hEdit, EM_GETLINECOUNT, 0, 0 );

RtlZeroMemory( &CharFmt, sizeof(CharFmt) );

CharFmt.cbSize = sizeof( CharFmt );

SendMessage( hEdit, EM_GETCHARFORMAT, TRUE, (long)&CharFmt );

//获取字符高度,以英寸为单位,需转化为磅,只要除以20就得到磅尺寸。

CharHeight = CharFmt.yHeight / 20;

chHeight = CharHeight;

CharHeight = 1;

//设置显示行号的前景色

SetTextColor( hdcCpb, 0x000000 );

//获取文本框中第一个可见的行的行号,没有这个行号,显示不会跟着文本的滚动而滚动。

FirstLine = SendMessage( hEdit, EM_GETFIRSTVISIBLELINE, 0, 0 );

FirstLine++;

//在位图dc中循环输出行号

while( FirstLine <= LineCount )

{

TextOut( hdcCpb, 1, CharHeight, countBuf, wsprintf( countBuf, TEXT("%4u"), FirstLine++ ));

CharHeight += chHeight + 4;

if( CharHeight > ClientHeight ) break;

}

//将已"画好"的位图真正"贴"到RichEdit中

BitBlt( hdcEdit, 0, 0, 40, ClientHeight, hdcCpb, 0, 0, SRCCOPY );

DeleteDC( hdcCpb );

ReleaseDC( hEdit, hdcEdit );

DeleteObject( hdcBmp );

}

hWnd是个句柄,不是类

至于为什么要选这个,是因为你是要得到在m_hWnd句柄代表的窗口的DC,你用了别的就得到另一个DC了

RichEdit是注册的插件

还有就是推荐个网站:http://www.ccrun.com

里面有很多关于C++Builder的东西,很全也有深度,你不是初学么,有什么问题先上那儿看看

js如何实现点击标签文字,文字在文本框出现_javascript技巧

js实现点击标签文字,文字出现在文本框里,下面2种方法实现的功能略有不同,总体来说方法一功能更强大。

第一种方法:随意点击任何标签都会出现在文本框中,如何第二次点击标签,对应的文字就会在文本框中消失。

.c{ width:40px; height:25px; line-height:25px; text-align:left; margin:2px; float:left; font-size:12px; cursor:pointer }

市级,省级,国家级

效果图:

第二种方法:当点击“脚本之家”标签的时候,此标签就出现在了文本框里,再点击SQL标签后,“SQL”标签就会替换掉“脚本之家”标签出现在文本框中。

.label {cursor:pointer}

JS特效

C++

SQL

脚本之家

效果图:

这里再为大家分享另一个Javascript的小技巧-----JS实现点击文本框清除表单内部默认文字,有时大家在填写表单内容时,表单里会出现一些默认提示文字,我们又不想一个个删除,有什么办法可以实现快速清除?下面就是我为大家准备的小代码:

效果图:

点击文本框之后

javascript怎么实现输入文字显示对应的内容?

<input id="txt"/><input id="btn" type="button" value="点我"/>
<div id="show"></div>
<script>
btn.onclick=function(){
var ca = ["a", "b" ,"c" , "d", "e", "f"];
show.innerHTML=txt.value.split("").map(e=>ca.indexOf(e)+1).join("");
}
</script>

javascript怎么实现输入文字显示对应的内容?

<input id="txt"/><input id="btn" type="button" value="点我"/>
<div id="show"></div>
<script>
btn.onclick=function(){
var ca = ["a", "b" ,"c" , "d", "e", "f"];
show.innerHTML=txt.value.split("").map(e=>ca.indexOf(e)+1).join("");
}
</script>

JavaScript如何调试有哪些建议和技巧附五款有用的调试工具_javascript技巧

以下内容是关于javascript如何调试有哪些建议和技巧的相关知识,具体详情请看下文吧。

浏览器开发者工具

我个人最喜欢Chrome开发者工具。虽然Safari和Firefox无法达到Chrome那么高的标准,但它们也在逐渐改善。在Firefox中,可以将Firebug和Firefox开发者工具组合使用。如果Firefox小组在改进内置开发者工具方面继续表现优异的话,Firebug有一天可能会被淘汰。

先把个人偏好放在一边,你应该能够在目标浏览器中对任意代码进行试验和调试。你的目标浏览器可能包括著名的IE8,也可能不包括。

要熟悉你自己选择的开发者工具。你还可以从IDE(集成开发环境)或者第三方软件获得额外的调试支持。

在各种调试工具中,调试的基础知识是相通的。事实上,我是在90年代从Borland的C开发者环境中学习的调试基础。断点、条件断点、监视与最新版Chrome开发者工具是完全相同的。2000年左右,我在Java中捕获到第一例异常。堆栈跟踪(Stack traces)的概念依然适用,即使JavaScript术语将其称作错误(Error),检查堆栈跟踪仍然和以前一样有用。

有些知识点是前端开发特有的。例如:

DOM检查

DOM断点

调试事件

内存泄露分析

断点

使用debugger语句可以在源代码中增加断点。一旦到达debugger语句,执行中断。当前作用域的上下文出现在控制台中,还有所有的局部变量和全局变量。将鼠标光标移到变量上可以查看变量的值。

在代码中还可以创建条件断点:

JavaScript

还可以根据自己需要在开发者工具中插入断点和条件断点。在Chrome开发者工具中,在Sources视图中点击行号即可增加断点。如果在断点上点击右键并选择“编辑断点(Edit Breakpoint)”,你还可以增加断点条件。

节点变化的断点

如果你的任务是调试垃圾代码,你可能会有这样的问题:为什么DOM节点在执行过程中发生了改变。Chrome开发者工具提供了一种方便的断点,可用来检测元素树中的节点变化。

在Elements视图中,右键点击一个元素,从右键菜单中选择“Break on?”。

节点变化的断点

DOM断点的类型可能包括:

选定节点树状子目录(sub-tree)中的节点变化,

选定节点的属性发生变化,

节点被删除。

避免记录引用类型

当记录对象或数组时,原始类型的值在引用对象记录中可能会发生变化。当查看引用类型时一定要记住,在记录和查看期间,代码执行可能会影响观测到的结果。

例如,在Chrome开发者工具中执行以下代码:

JavaScript

记录的第二个和第三个属性的值是正确的,第一个属性中对象引用的值是不可靠的。当你第一次在开发者工具中显示这个属性时,amount域的值就已经确定了。无论你对同一个引用关闭并重新打开多少次,这个值都不会变化。

记录参考类型

永远记得你在记录什么。记录原始类型时,使用带断点的watch表达式。如果是异步代码,避免记录引用类型。

表格记录

在一些开发者工具中,你可以用console.table在控制台中记录对象数组。

尝试在你的Chrome开发者工具中执行下列代码:

JavaScript

输出是非常好看的表格。所有原始类型都立刻显示出来,它们的值反应记录时的状态。也可以记录复杂类型,显示内容为其类型,内容无法显示。因此,console.table只能用来显示具有原始类型值的对象构成的二维数据结构。

XHR断点

有时你可能会遇到错误的AJAX请求。如果你无法立刻确认提交请求的代码,XHR断点可以帮你节省时间。当提交某一特殊类型的AJAX时,XHR断点将会终止代码的执行,并将提交请求的代码段呈现给用户。

在Chrome开发者工具的Sources标签页中,其中一个断点类型就是XHR断点。点击+图标,你可以输入URL片段,当AJAX请求的URL中出现这个URL片段时,JavaScript代码将会中断。

事件断点

Chrome开发者工具可以捕获所有类型的事件,当用户按下一个键、点击一下鼠标时,可以对触发的事件进行调试。

异常时暂停

Chrome开发者工具可以在抛出异常时暂停执行JavaScript代码。这可以让你在Error对象被创建时观察应用的状态。

异常时暂停

代码片段

Sources标签页左侧面板上有一个代码片段(Snippet)子标签页,可用于保存代码片段,帮你调试代码。

如果你坚持使用控制台调试,反复写相同的代码,你应该将你的代码抽象成调试片段。这样的话,甚至还可以把你的调试技巧教给你的同事。

Paul Irish发布过一些基本的调试代码片段,例如在函数执行前插入断点。审查这些代码片段,并在网上搜索其他代码片段,这是很有价值的。

在函数执行前插入断点

如果你可以得到函数调用的源代码,你还可以在函数调用前插入断点来终止函数的执行。如果你想调试f函数,用debug(f)语句可以增加这种断点。

Unminify最小化代码

(译者注:unminify 解压缩并进行反混淆)

尽可能使用 source map。有时生产代码不能使用source map,但不管怎样,你都 不应该直接对生产代码进行调试。

(译者注:sourcemap 是针对压缩合并后的web代码进行调试的工具)

如果没有source map的话,你最后还可以求助于Chrome开发者工具Sources标签页中的格式化按钮(Pretty Print Button)。格式化按钮{}位于源代码文本区域的下方。格式化按钮对源代码进行美化,并改变行号,这使得调试代码更加方便,堆栈跟踪更加有效。

格式化按钮只有在不得已时才会使用。从某种意义上来说,丑代码就是难看,因为代码中的命名没有明确的语义。

DOM元素的控制台书签

Chrome开发者工具和Firebug都提供了书签功能,用于显示你在元素标签页(Chrome)或HTML标签页(Firebug)中最后点击的DOM元素。如果你依次选择了A元素、B元素和C元素,

$0 表示C元素

$1 表示B元素

$2 表示A元素

如果你又选择了元素D,那么$0、$1、$2和$3分别代表D、C、B和A。

访问调用栈

JavaScript

Chrome开发者工具中的Sources标签页也在Watch表达式下面显示调用栈。

性能审查

性能审查工具通常是很有用的。这些工具可以用于防止内存泄露,还可以检测到你的网站哪里需要优化。由于这些工具并不了解你的产品,你可以忽略其某些建议。通常来说,性能分析工具能够有效范围,可以使你的网站显著优化。

审查工具举例:

Chrome开发者工具的Audit标签页

YSlow

熟能生巧

你可能熟悉某些调试技巧,其他技巧也会帮你节省不少时间。如果你开始在实践中使用这些技巧,我建议你几周之后重新阅读本文。你将会惊奇地发现,你的关注点在几周内就发生了变化。

五个常用的js调试工具

JavaScript被称作以原型(prototype)为基础的语言。这种语言有很多特色,比如动态和弱类型,它还有一等函数(first class function)。另一个特点是它是一个多范型(multi-paradigm)语言,支持面向对象、声明式、函数式的编程风格。

JavaScript最初被用作客户端语言,浏览器实现它用来提供增强的用户接口。JavaScript在很多现代的网站和Web应用程序中都有应用。JavaScript的一个很棒的功能也很重要,就是我确实可以用它来提高或改善网站的用户体验。JavaScript也可以提供丰富的功能和交互的组件。

JavaScript在这技术高速发展的同时变得非常受欢迎。因为受欢迎JavaScript也改进了许多,修改JavaScript脚本有很多事要做。这次我们为开发者带来了几个非常有用的JavaScript调试工具。

1)Drosera

可以调试任何WebKit程序,不仅仅是Safari浏览器。

2)Dragonfly

源代码视图有语法高亮,可以设置断点。强大的搜索功能,支持正则表达式。

3)Getfirebug

可以在任何网页编辑、调试和实时监视CSS、HTML和JavaScript。

4)Debugbar

5)Venkman

Venkman是Mozilla的JavaScript调试器名称。它旨在为以Mozilla为基础的浏览器(Firefox, Netscape 7.x/9.x and SeaMonkey)提供一个强大的JavaScript调试环境。

JavaScript实现当前页面显示文本框中输入的信息

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
</head>

<body>
 <form>
   <table class="table table-striped">
     <caption>用户注册</caption>
     <tbody>
       <tr class="title">
         <td colspan="2">登录信息填写:以下请填写登录信息</td>
       </tr>
       <tr>
         <td id="a2" class="title">用 户 名<br /><span>长度*8个字符或汉字</span></td>
         <td id="b2"><input type="text" name="username" id="uname"> <span>(必填项目)(建议使用真实姓名注册)</span></td>
       </tr>
     </tbody>
     <tfoot>
       <tr>
         <td colspan="2"><input type="submit" value=" 提 交 " onClick="submit()"><input type="submit" value=" 重 置 "></td>
       </tr>
     </tfoot>
   </table>
 </form>
 <script type="text/javascript">
   /**
    * 获取地址栏参数
    * @param key 参数名
    */
   var getParam = function (key) {
     var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
     var r = window.location.search.substring(1).match(reg);
     return r ? decodeURI(r[2]) : null;
   };
   var username = getParam('username');
   if (username) {
     document.getElementById("b2").innerHTML = username;
   }
 </script>
</body>

</html>

追问谢谢大佬,实测成功,不过邮箱地址的@符号在地址栏会转换为“%40”,怎么样在输出的时候转换回来呢?

JavaScript实现当前页面显示文本框中输入的信息

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
</head>

<body>
 <form>
   <table class="table table-striped">
     <caption>用户注册</caption>
     <tbody>
       <tr class="title">
         <td colspan="2">登录信息填写:以下请填写登录信息</td>
       </tr>
       <tr>
         <td id="a2" class="title">用 户 名<br /><span>长度*8个字符或汉字</span></td>
         <td id="b2"><input type="text" name="username" id="uname"> <span>(必填项目)(建议使用真实姓名注册)</span></td>
       </tr>
     </tbody>
     <tfoot>
       <tr>
         <td colspan="2"><input type="submit" value=" 提 交 " onClick="submit()"><input type="submit" value=" 重 置 "></td>
       </tr>
     </tfoot>
   </table>
 </form>
 <script type="text/javascript">
   /**
    * 获取地址栏参数
    * @param key 参数名
    */
   var getParam = function (key) {
     var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
     var r = window.location.search.substring(1).match(reg);
     return r ? decodeURI(r[2]) : null;
   };
   var username = getParam('username');
   if (username) {
     document.getElementById("b2").innerHTML = username;
   }
 </script>
</body>

</html>

追问谢谢大佬,实测成功,不过邮箱地址的@符号在地址栏会转换为“%40”,怎么样在输出的时候转换回来呢?

javascript点击按钮弹出文本框,用户可输入

可以直接用js自带的prompt方法。

定义和用法

prompt() 方法用于显示可提示用户进行输入的对话框。

语法

prompt(text,defaultText)

参数

text    可选。要在对话框中显示的纯文本(而不是 HTML 格式的文本)。    

defaultText    可选。默认的输入文本。    

说明

如果用户单击提示框的取消按钮,则返回 null。如果用户单击确认按钮,则返回输入字段当前显示的文本。

在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入。在调用 prompt() 时,将暂停对 JavaScript 代码的执行,在用户作出响应之前,不会执行下一条语句。

简单的例子,仅供参考:

<body>

<input type="text" id="clock" size="35" />

<script language=javascript>

    var int=self.setInterval("clock()",50)

    function clock()

      {

      var t=new Date()

      document.getElementById("clock").value=t

      }

    </script>

    </form>

    <button onclick="int=window.clearInterval(int)">

    Stop interval</button>

</body>

html+JS 输入文本框,获取文本框内容且输出

获取文本框中的内容有以下两种方法:

假设为如下文本框:

<input type="text" value="" id="text">

1、原生JS获取文本框的值:

document.getElementById("text").value  //text为文本框的id

2、jquery获取文本框的值:

$("#text").val()

明星茬娱乐还为您提供以下相关内容希望对您有帮助:

VuGen script怎么在每行代码中显示行号

nogutter将不会显示行号 nocontrols将不会在顶部显示控制器 collapse将默认折叠代码 firstline[value]行计数开始值。默认值是 1 showcolumns将在第一行显示行列 这些选项和别名放置在一起,使用冒号 : 字符分隔。

javascript点击按钮弹出文本框,用户可输入

如果用户单击提示框的取消按钮,则返回 null。如果用户单击确认按钮,则返回输入字段当前显示的文本。在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入。在调用 prompt() 时,将暂停对 JavaScript...

Microsoft Visual Studio 怎么设置显示文本的行号?

1、打开Microsoft Visual Studio 2008,新建一个页面。如下,这时候是没有显示行号的,要定位到第几行,只能用ctrl+g按钮,弹出行号输入框,然后定位到该行,如下图。2、现在将介绍如何进行行号显示的配置。找到菜单栏上的...

...框,怎么得到当前点击的行数和列数?用JavaScript实现。

你直接把这个拷贝到一个html文件中,打开就可以看效果,我建议你在生成table的时候可以把text的框加一个id,id中包含它属于的行和列,这样在点击text的时候可以很快的得到它属于的行和列。 function showRowAndCol(i, j...

HTML表格如何选定一个行, javascript里面,如何如何获取一个表格的选定...

//只要保证那个隐藏的INPUT存在,这里就不再判断是否存在了.alert('点击了第'+line.id+'行');document.getElementById("line_num").value = line.id;} } function showLineNum(){ //只要保证那个隐藏的INPUT存在,这里...

javascript如何实现下图所示的输入框边上的提示文字效果,我是小白,请...

这个是文本框的 在这里面使用一个onblur()事件 这个函数会调用执行绑定到blur事件的所有函数,包括浏览器的默认行为。可以通过返回false来防止触发浏览器的默认行为。blur事件会在元素失去焦点的时候触发,既可以是鼠标行为,也...

html+JS 输入文本框,获取文本框内容且输出

假设为如下文本框:1、原生JS获取文本框的值:document.getElementById("text").value //text为文本框的id2、jquery获取文本框的值:("#text").val()

ASP里怎样显示多行文本框已输入内容的行数

asp指的是服务器动态脚本,是要传到服务端运行的,你的问题应该用js在客户端做。 function lineCont(){ var line=0 , pos=0 while((pos=escape(txt1.value).indexOf('%0A',pos)+1)!=0){ line++ } lineNum....

js如何实现点击标签文字,文字在文本框出现_javascript技巧

第一种方法:随意点击任何标签都会出现在文本框中,如何第二次点击标签,对应的文字就会在文本框中消失。.c{ width:40px; height:25px; line-height:25px; text-align:left; margin:2px; float:left; font-size:12px...

在javascript中如何实现单击按钮将文本框中输入的内容显示在页面上...

文本框内容显示在指定地方:就是一个dom内容转移的操作,使用Jquery获取原生js都很好实现,配合具体js事件实现。具体操作如下://假定文本框的id='mytext',指定显示区域的id='show' //div/span/p等节点,不是文本元素...

Top