Максимальная длина для параметра функции

Есть ли максимальная длина для параметра JavaScript function ()?

Я создал функцию с длинным параметром, но она не сработала. Когда я сократил параметр той же функции, это сработало. Означает ли это, что существует максимальная длина аргумента функции? Если да, порекомендуйте, пожалуйста, альтернативы моему текущему методу.

JavaScript

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

HTML

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

Если переменная PHP длинная, например «17b6f557969619544eb1e6cd58c3f341», она не работает. Но если я изменю переменную на что-то вроде «203», функция будет работать успешно.


person shadyinside    schedule 15.12.2012    source источник
comment
Посмотрим, какой код вы использовали.   -  person 0x499602D2    schedule 15.12.2012
comment
Что именно значит "не сработало"? Вы получили ошибку?   -  person Pointy    schedule 15.12.2012
comment
Может быть, у вас есть неподдерживаемые символы в аргументе функции? Пожалуйста, прочтите ограничения переменных на mdn developer.mozilla.org/ en-US / docs / JavaScript / Guide /   -  person antyrat    schedule 15.12.2012
comment
на самом деле параметр - это переменная php. Я сделал аналогичные вставки переменных php в параметр функции, но они были короткими, поэтому я думаю, сработало. Но тот же метод не работает с длинными переменными php.   -  person shadyinside    schedule 15.12.2012
comment
Нам нужен код и примеры.   -  person PitaJ    schedule 15.12.2012
comment
Можете ли вы поделиться выводом <pre><?= $your_var ?></pre> (из источника страницы), чтобы мы знали, что там происходит?   -  person inhan    schedule 15.12.2012
comment
Нет никаких ограничений. но это зависит от реализации   -  person defau1t    schedule 15.12.2012
comment
возможный дубликат максимальной длины имени переменной в JavaScript   -  person Bergi    schedule 15.12.2012
comment
Вы где-нибудь определяли переменную 17b6f557969619544eb1e6cd58c3f341 или выводили строковый литерал или что-то в этом роде?   -  person Bergi    schedule 15.12.2012


Ответы (2)


«Дуглас Крокфорд» написал в новостях сообщения: [email protected] rvers.com ... [color = blue]

.... Максимальная длина будет зависеть от реализации. ...[/цвет]

В microsoft.public.scripting.jscript Майкл Харрис (Microsoft.MVP.Scripting), которого можно было ожидать, процитировал:

В JScript вариантные строковые переменные имеют такое же ограничение, как и в VBScript, до 2 ^ 31 символа.

Строковые литералы (например, «это литерал») имеют (IIRC) ограничение ~ 2 ^ 10 (1024) символов.

  • для реализации JScript.

Цитата

person Mike    schedule 15.12.2012
comment
Откуда вы скопировали эту цитату (включая разметку bb), или это просто ошибка форматирования, и Дуглас Крокфорд написал… не должен быть частью цитаты? - person Bergi; 15.12.2012
comment
Кажется, из bytes.com/topic/ javascript / answers / - person Gumbo; 15.12.2012

Похоже, вы действительно хотите передать значение переменной PHP буквально в функцию, а не как имя переменной.

example(17b6f557969619544eb1e6cd58c3f341)

пытается вызвать функцию с этой переменной (вероятно, вызывая исключение или даже являясь синтаксической ошибкой), в то время как

example(203)

вызывает функцию с числовым литералом для целого числа 203. Если вы хотите передать значение в виде строки, используйте json_encode!

Также обратите внимание, что вам нужно будет экранировать все для использования в атрибуте HTML (например, escape-кавычки, ‹и›), поскольку у вас есть

<div onclick=" [some code here] ">
person Bergi    schedule 15.12.2012