js的参数有长度限制吗?发现不能超过2083个字符

一个普通的javascrip函数,只有一个入口参数


代码如下:

function test(info)
<img none';="" document.getelementbyid('_20_37_open_text').style.display="none" ;="" document.getelementbyid('_20_37_closed_image').style.display="inline" document.getelementbyid('_20_37_closed_text').style.display="inline" ;"="" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px; max-width: 100%; ">{
alert(info);
}

页面用是aspx代码生成,调用test函数的入口参数可能是一个很长的字符串,同时页面上根据一个数据集构造很多如下所示的标签。


代码如下:

<a href="javascript:test('ssssss...这里很长..ssssss')">test</a>

页面生成后有些链接可以点,有些不能点。用substring大致对入口参数的值处理了一下,发现不能超过2083个字符。难道js的函数参数有长度限制?从来没有听说过。也没有查到相关的说法。

试着把<a>标签,换为<button>然后再clik事件里调用这个js函数,参数传了全部的长度,发现没有错误了...

这下顿悟,原来是<a href>惹的祸,<a href>是使用get传递参数,url无论如何都有2k的长度限制。即便是在这种情况下掉js函数也不能超过。

(0)

相关推荐

  • js的参数有长度限制吗?发现不能超过2083个字符

    一个普通的javascrip函数,只有一个入口参数 复制代码 代码如下: function test(info) <img none';="" document.getelementbyid('_20_37_open_text').style.display="none" ;="" document.getelementbyid('_20_37_closed_image').style.display="inline"

  • JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)

    js判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie

  • 基于vue.js路由参数的实例讲解——简单易懂

    vue中,我们构建单页面应用时候,一定必不可少用到vue-router vue-router 就是我们的路由,这个由vue官方提供的插件 首先在我们项目中安装vue-router路由依赖 第一种,我们提供命令行来安装 npm install vue-router --save 第二种,我们直接去官方github下载 https://github.com/vuejs/vue-router 路由参数设置 1,实例化一个路由,然后路由映射表中的地址带参数,这个参数就是路由的参数 接着给映射表中的路由设

  • 浅谈在js传递参数中含加号(+)的处理方式

    一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+). 但是对于带有中文的参数来说,这种编码会使编码后的字符串变得很长. 如果希望有短一点的方式对参数编码,可以采用 base64 编码方式对字符串进行编码,但是 base64 编码方式不能处理 JavaScript 中的中文,因为 JavaScript 中的中文都是以 UTF-16 方式保存的. 而 base64 只能处理单字

  • 完美解决js传递参数中加号和&号自动改变的方法

    在action中用get方法获得参数,如果参数里有"+",要做处理,否则到后台会变成空格. 解决方案: 1 .改用post方法: 2 .在 js 里用 url = encodeURI(encodeURI(XXX)) ,后台再解码一次: 3 .传递参数的时候直接替换转义,或者直接写转义后的代码 data =  "a + b": data = data.replace(/\+/g, "+"); data = data.replace(/\&/

  • node.js获取参数的常用方法(总结)

    1.req.body 2.req.query 3.req.params 一.req.body例子 body不是nodejs默认提供的,你需要载入body-parser中间件才可以使用req.body,这个方法通常用来解析POST请求中的数据 <form action='/test' method='post'> <input type='text' name='name' value='lmw'> <input type='text' name='tel' value='12

  • Js自动截取字符串长度,添加省略号(……)的实现方法

    JavaScript字符串处理函数,根据定义的长度截取字符串,超出部分裁掉追加--,很多时候网页上显示的内容需要缩成"..."该方法用于处理字符串显示固定长度,超长部分用"..."代替: /**参数说明: * 根据长度截取先使用字符串,超长部分追加- * str 对象字符串 * len 目标字节长度 * 返回值: 处理结果字符串 */ function cutString(str, len) { //length属性读出来的汉字长度为1 if(str.length*

  • JS获取字符串实际长度(包含汉字)的简单方法

    方法一: var jmz = {}; jmz.GetLength = function(str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { cha

  • JS实现根据密码长度显示安全条功能

    大家在一些网站上经常可以看到数码密码会根据输入的密码长度显示安全条功能,此功能基于js如何实现的呢?下面看下实现代码,具体代码如下所示: //根据密码长度显示安全条 <ul class="clear"> <li>密 码:</li> <li> <input type="password" id="pwd" name="pwd" class="in" onK

  • JS函数参数的传递与同名参数实例分析

    本文实例讲述了JS函数参数的传递与同名参数.分享给大家供大家参考,具体如下: 函数参数的传递 函数参数如果是原始类型值,传递方式是值传递.这意味着,在函数体内修改参数值,不会影响函数外部. var p = 2 function f(p) { p = 3 } f(p) p // 2 上面代码中,变量p是一个原始类型的值,传入函数f的方式是值传递,因此在函数内部,p的值是原始值的拷贝,无论怎么修改,都不会影响到原始值. 但是,如果函数参数是复合类型,传入函数的方式是引用的传递,也就是说,传入函数的是

随机推荐