【问题标题】:Max length for a function parameter函数参数的最大长度
【发布时间】:2012-12-03 08:58:03
【问题描述】:

JavaScript function() 参数是否有最大长度?

我创建了一个具有长参数的函数,但它不起作用。当我缩短相同函数的参数时,它起作用了。这是否意味着函数参数有最大长度?如果是这样,请推荐我当前方法的替代方法。

JavaScript

function example(idnum) {
   alert(idnum);
}

HTML

<div onclick='example(*php variable,no special character included*)'></div>

当 PHP 变量较长时,如“17b6f557969619544eb1e6cd58c3f341”,则不起作用。但是,如果我将变量更改为“203”之类的内容,则该函数可以成功运行。

【问题讨论】:

  • 让我们看看你使用的代码。
  • “它不起作用”到底是什么意思?你收到错误了吗?
  • 也许您的函数参数中有不受支持的字符?请阅读 mdn developer.mozilla.org/en-US/docs/JavaScript/Guide/… 的变量限制
  • 我们需要一些代码和示例。
  • 您能否分享&lt;pre&gt;&lt;?= $your_var ?&gt;&lt;/pre&gt; 的输出(来自页面源),以便我们知道那里发生了什么?

标签: javascript function-parameter


【解决方案1】:

“Douglas Crockford”在消息中写道 新闻:9a027$3fa7c56d$44a4aebc$9152@msgid.meganewsse rvers.com... [颜色=蓝色]

...最大长度将是特定于实现的。 ...[/颜色]

在 microsoft.public.scripting.jscript 中,Michael Harris (Microsoft.MVP.Scripting),谁可能知道,引用:-

在 JScript 中, 变体字符串变量具有与 VBScript 中相同的限制,最多为 2^31 个字符。

String literals(如“这是一个文字”)有(IIRC)一个限制 ~2^10 (1024) 个字符。

  • 用于 JScript 实现。

块引用

【讨论】:

  • 您从哪里复制了该引用(包括 bb 标记),或者它只是格式错误,并且“Douglas Crockford 写...”不应该是引用的一部分?
【解决方案2】:

听起来您实际上想将 PHP 变量的值按字面意思传递给函数,而不是作为变量名。

example(17b6f557969619544eb1e6cd58c3f341)

尝试使用该变量调用函数(可能导致异常,甚至是语法错误),而

example(203)

使用整数203 的数字字面量调用函数。如果要将值作为字符串传递,请使用json_encode

另外请注意,您需要转义所有用于 HTML 属性的内容(即转义引号、),就像您所做的那样

<div onclick=" [some code here] ">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2011-01-23
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多